[Решено] Как заставить выгружать один товар?

Тема в разделе "OpenCart", создана пользователем alex_storm, 24 авг 2015.

  1. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Всем привет!

    Не могу понять как заставить выгрузку работать на странице каталоге товаров в админке.

    Делаю в view
    <a onclick="$('#form').attr('action', '<?php echo $price_export; ?>'); $('#form').attr('target', '_blank'); $('#form').submit();" class="button">Экспорт в прайс</a>
    Т.е. при выбранных товарах, будет передаваться ID в обработчик для дальнейшей выгрузки нужных данных.

    Вроде в первом массиве все четко и id передается.
    а вот как заставить по этому id еще и хватать нужные данные?


    Код:
        public function getInfo($products){
       
            foreach ($products as $products_id) {
                $this->load->model('catalog/product');
                $product_info = $this->model_catalog_product->getProducts($products_id);   
    
                $data = array();
               
                $result = $this->model_catalog_product->getProducts();
               
                foreach ($results as $product_id => $result) {
                    $data[] = array(
                        1  => $result['name']
                    );
                }
               
            }
            return $data;    
        }
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Во-первых, убери из цикла эту строку:
    PHP:
    $this->load->model('catalog/product');
    Модель нужно подключать один раз на вызов функции, а не на каждую итерацию в цикле.

    Во-вторых, у тебя данные выгружаются в переменную $result, а циклом ты обрабатываешь несуществующую переменную $results.

    А в-третьих, код вообще бредовый. Если в массиве $products id товаров, которые нужно выгрузить, то достаточно такого цикла:
    PHP:
    foreach ($products as $products_id) {           
                
    $product_info $this->model_catalog_product->getProduct($products_id);
                
    $data[$products_id] = $product_info;         
            }
     
    alex_storm нравится это.
  3. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Да, я код потом чуть подправил и на счет модели вынес за пределы цикла.

    Выгрузить надо по ID данные о товаре.

    Т.е. я собираю ID на экспорт и уже от этого ID я подставляю данные: название, цена, картинка и прочее.
    Вот id собрать могу, а данные не хочет.

    Массив товаров идет один(

    Как сопаставление сделать?
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Я ничего не понимаю. Откуда ты id берёшь? Я так понял, что ты их выдёргиваешь со списка товаров в админке и передаёшь на бекенд в массиве $products.