Автор Тема: Переменная в product-list  (Прочитано 600 раз)

12 Январь 2016, 11:45:15
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем доброго дня!
Вопрос возник такой.
На странице product-list.tpl сделано поле
<input type="text" name="mytext" id="mytext" class="text" value="" size = 2 />
на данной странице отправка идет по
<a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}">
<span>{l s='Add to cart'}</span>
</a>

Возможно как-то передать значение mytext в CartController.php
В CartController.php указал ее, но всеравно не получаю
Спасибо!
12 Январь 2016, 11:48:47
Ответ #1
12 Январь 2016, 13:24:27
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответ!
Вообще-то тут немного другое.. хотя полезное.
Дело вот в чем.. при определенных условиях на странице product-list есть установки и кнопка обработки
<p>
<input type="hidden" name="qty" id="quantity_wanted" class="text" value="2"  />
<input type="hidden" name="token" value="{$static_token}" />
<input type="hidden" name="id_product" value="{$product.id_product}" id="product_page_product_id" />
<input type="hidden" name="add" value="1" />
<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
</p>

<p id="add_to_cart" class="buttons_bottom_block no-print">
<button type="submit" name="Submit" class="exclusive">
<span>{l s='Add to cart'}</span>
</button>
</p>

Все бы было ничего но в строке
<input type="hidden" name="id_product" value="{$product.id_product}" id="product_page_product_id" />Не фиксируется value="{$product.id_product}" вернее есть id_product но самого первого товара
Если ставлю жестко id
<input type="hidden" name="id_product" value="11" id="product_page_product_id" />Тогда все нормально..
Почему не присваивает 
value="{$product.id_product}"
текущего товара а всегда первый со страницы.

Спасибо!

12 Январь 2016, 13:35:37
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{foreach from=$products item=product name=products}
    // только внутри цикла
    ....
    {$product.id_product}
12 Январь 2016, 13:48:14
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да нет все в  нутри цикла. Вывожу перед ними
<label>{$product.id_product}</label>
Выводит.
Следом  строка
<input type="hidden" name="id_product" value="{$product.id_product}" id="product_page_product_id" />
Не присваевает
Следом строка
href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token}", false)|escape:'html':'UTF-8'}"
Все нормально присваивает
id_product={$product.id_product|intval}
В чем фишка..
12 Январь 2016, 13:57:53
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Сделай так
<input type="hidden" name="id_product" value="{$product.id_product|intval}" id="product_page_product_id" />intval - Возвращает целое значение переменной.
12 Январь 2016, 14:20:02
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дело походу в передаче к обработке.
на станице 3 товара, id 9,10,11
выбираю третий id должно быть 11

Проверял
<input type="text" name="id_product" value="{$product.id_product|intval}" id="product_page_product_id" />В поле стоит id товара правельно стоит 11

а вот при передачи к обработке нажатия кнопки
<p id="add_to_cart" class="buttons_bottom_block no-print">
<button type="submit" name="Submit" class="exclusive">
<span>{l s='Add to cart'}</span>
</button>
</p>
В CartController вывод $this->id_product дает id_product равное 9
12 Январь 2016, 14:26:59
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В этом файле передача не через форму, а через ссылки. При клике на копку значение ид берется из
data-id-product="{$product.id_product|intval}" Вам нужно переделать код кнопки на ссылку и добавить параметр data-id-product.
12 Январь 2016, 14:35:31
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо! Пробую..
12 Январь 2016, 20:04:21
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 153
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем спасибо вопрос решился! Удачки вам!