Всем привет! Не могу понять как заставить выгрузку работать на странице каталоге товаров в админке. Делаю в 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; }
Во-первых, убери из цикла эту строку: 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; }
Да, я код потом чуть подправил и на счет модели вынес за пределы цикла. Выгрузить надо по ID данные о товаре. Т.е. я собираю ID на экспорт и уже от этого ID я подставляю данные: название, цена, картинка и прочее. Вот id собрать могу, а данные не хочет. Массив товаров идет один( Как сопаставление сделать?
Я ничего не понимаю. Откуда ты id берёшь? Я так понял, что ты их выдёргиваешь со списка товаров в админке и передаёшь на бекенд в массиве $products.