#onclick #smarty #prestashop #prestashop-1.6
#onclick #smarty #prestashop #prestashop-1.6
Вопрос:
Мне нужна помощь с шаблоном в prestashop. Чего я пытаюсь добиться, так это того, что когда клиент нажимает на ссылку, он должен вызывать функцию php из моей модели, которая добавляет товар в корзину.
Но кажется, что функция выполняется независимо от того, нажата ссылка или нет. Как только ссылка «прочитана» (я думаю, с помощью Smarty), она выполняется. Как я могу предотвратить это и выполнять функцию только при нажатии на ссылку?
Здесь ниже вы можете найти код моего шаблона.
Заранее спасибо
<div class="bloc_bouton_recap">
<h4>Ce produit ne vous convient pas et vous souhaitez reprendre la configuration à zero? <a href="{$link->getModuleLink('formulairemodule')}" name="lien_config" title="Configurateur">Suivez ce lien</a></h4>
<h3>nbproduxcts : {$cart->nbProducts()}</h3>
</div>
<div class="bloc_bouton_recap">
<h4>Ajouter ce produit à <a href="{$link->getModuleLink('formulairemodule')}" class="lien_panier" onclick='{Formulaire::addProduitAuPanier($idproduct)}' >votre panier</a></h4>
<h3>nbproduxcts : {$cart->nbProducts()}</h3>
</div>
Теги h3 предназначены только для отображения количества товаров в моей корзине, а последний всегда отображает на 1 больше, чем остальные.
Ответ №1:
Вы должны поместить в onclick функцию Javascript, а не вызов PHP / Smarty.
В функции Javascript вы должны затем, например, использовать URL-адрес запуска AJAX, где есть скрипт, который добавляет товар в корзину.
Вам нужно изучить Javascript / AJAX, если вы хотите этого добиться. Используя только Smarty и PHP, вы не сможете этого сделать.
Комментарии:
1. Спасибо, я прочитал 2 минуты назад, что smarty фактически выполняет код перед его отображением, поэтому я буду работать с ajax.