Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

передать значение из массива POST в контроллер


georg

Recommended Posts

Добрый день, подскажите, пожалуйста, в чем загвоздка - уже замучился.

У меня на сайте есть фильтр, который должен выводить результаты в зависимости от выбора производителя и цены.

Производители выводятся в template/module/price.tpl так:

<ul id="filter">

<?php foreach ($manufactureres as $manufacturer) { ?>

<li>

<span id="<?php echo $manufacturer['manufacturer_id']; ?>" onclick="man('<?php echo $manufacturer['manufacturer_id']; ?>');" key=''><?php echo $manufacturer['name']; ?></span>

</li>

<?php } ?>

</ul>

Ниже, в ф-ции яваскрипта, формируется строка запроса:

function man(id) {

$('#filter span').css("color","#000000");

$('#filter span').removeAttr('key');

$('#'+id).attr('key','1');

$('#'+id).css("color","red");

}

function redirectToPricePage() {

var lower = $('#lower').val();

var upper = $('#upper').val();

..............................................................

manufacturer_id = $('#filter span[key=1]').attr('id');

if (true) {

$.post(

'index.php?route=module/price/rewriteURL',

{route: 'product/price', args: '<?php echo $args; ?>&range=' + lower + '-' + upper + '&stock=' +stock + '&manufacturer_id=' + manufacturer_id},

function(data) {

location = data;

}

);

}

}

и мне нужно значение переменной manufacturer_id передать в функцию getProducts() в файл catalog/controller/product/price.php

я делаю через POST: getProducts($filters, '', $_POST['manufacturer_id']) - ругается, говорит: Undefined index: manufacturer_id в этой строке.

как передать параметр правильно в данном случае, чтобы работало? подскажите, пожалуйста!

Надіслати
Поділитися на інших сайтах


я делаю через POST: getProducts($filters, '', $_POST['manufacturer_id']) - ругается, говорит: Undefined index: manufacturer_id в этой строке.

как передать параметр правильно в данном случае, чтобы работало? подскажите, пожалуйста!

У тебя manufacturer_id не в $_POST а в $_GET...

Если модуль написан не ногами - то вот так $this->request->get['manufacturer_id'] ты получиш manufacturer_id.

Надіслати
Поділитися на інших сайтах

спасибо, разобрался с этим сам, вчера еще - но не отписывал.

возник следующий вопрос:

У меня на странице есть список производителей. вот пример страницы

http://charskaia.com/op/index.php?ro...tegory&path=24

При выборе производителя из списка выводится список товаров для этого производителя в выбранной подкатегории.

Мне нужно запомнить ай-ди производителя и передать его на страницу результатов, чтобы на странице результатов этот производитель был выделен красным.

Как это делается, я никак не соображу. Заранее спасибо огромное за наводку, потому что бьюсь уже 2 дня. Яваскрипт знаю не очень - поэтому трудности.

Надіслати
Поділитися на інших сайтах


а зачем тут js?

по структуре, я так понял, вверху это что-то фильтра? параметры ты ж будешь передавать через GET (то есть через строку браузера)? вот тебе и ответ при выводе производителя поставь проверку, если id совпадает с вывода цикла, добавляешь какой-то класс..все!

Надіслати
Поділитися на інших сайтах


понял. сделал, спасибо. вопрос - а как быть в том случае, когда производитель не выбран?

если вводим просто цену или наличие?

Производители выводятся у меня в catalog/controller/module/price.php массивом

$this->data['manufactureres'] = array();

$manufactureres = $this->model_catalog_manufacturer->getManufacturers(0);

foreach($manufactureres as $manufacturer)

{

$this->data['manufactureres'][] = array(

'manufacturer_id' => $manufacturer['manufacturer_id'],

'name' => $manufacturer['name'] ,

'href' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'])

//route=product/manufacturer/product&manufacturer_id=6

);

}

так когда я для этого частного случая при формировании строки запроса в параметр manufacturer_id ставлю 0 - отказывается работать.

Fatal error: Call to a member function getManufacturers() on a non-object in /home/charskai/public_html/opencart/catalog/controller/module/price.php on line 85

Надіслати
Поділитися на інших сайтах


как можно в контроллере для разных случаев вызывать 2 разные функции?

когда выбран производитель - чтобы вызывалась для выбора товаров ф-ция getProducts,

а когда производитель не выбран - чтобы вызывалась для выбора товаров ф-ция getProducts1,

как это реализовать?

Надіслати
Поділитися на інших сайтах


А может проще в методе getProducts проверять наличие выбранного производителя и в случае необходимости добавлять в SQL-запрос условие выборки по производителю?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.