Jump to content

Ajout d'une variable produit dans le ajax-cart


Recommended Posts

Bonjour à tous,

 

Voici le contexte : Mon site utilise le la confirmation de l'ajout d'un produit au panier via l'ajax-cart.

 

Dans cette "popup" je dois afficher une variable produit (le contenu du champ code EAN13)

Dans un fichier tpl, je n'ai pas de problème, j'affiche cette variable comme ceci : {$product.ean13}

 

Comment puis-je appeler cette variable dans un fichier .js (le fichier "montheme/js/modules/blockcart/ajax-cart.js"

 

J'ai essayé + product.ean13 + , mais le résultat de l'affichage est "undifined"

 

Voici le code :

 

$('.layer_cart_img').html('<img class="layer_cart_img img-responsive" src="' + base_url + '/img/cms/illustrations_articles/' + product.ean13 + '.jpg" alt="' + product.name + '" title="' + product.name + '" />');

 

merci pour votre aide

Link to comment
Share on other sites

Salut,

Une idée à tester...

 

Dans ton tpl 

{addJsDefL name=productean13}{$product.ean13 js=1}{/addJsDefL}
Dans ton js

$('.layer_cart_img').html('<img class="layer_cart_img img-responsive" src="' + base_url + '/img/cms/illustrations_articles/' + productean13 + '.jpg" alt="' + product.name + '" title="' + product.name + '" />');
Edited by Alexandre SDW CREW (see edit history)
Link to comment
Share on other sites

Merci beaucoup pour ton aide et ta suggestion.

 

Je viens de tester et lorsque je fais la modif dans le JS, la popup ne s'affiche plus et quand je fais la modif dans le TPL en plus, j'ai une page blanche, plus du site :-(

 

une idée?

Link to comment
Share on other sites

pareil, j'ai le même soucis de page blanche.

 

Pour être sur, le TPL a modifier est bien celui-ci :

 

"montheme/modules/blockcart/blockcart.tpl"

 

et mon js :

 

"montheme/js/modules/blockcart/ajax-cart.js"

Link to comment
Share on other sites

Bonjour à tous,

 

Voici le contexte : Mon site utilise le la confirmation de l'ajout d'un produit au panier via l'ajax-cart.

 

Dans cette "popup" je dois afficher une variable produit (le contenu du champ code EAN13)

Dans un fichier tpl, je n'ai pas de problème, j'affiche cette variable comme ceci : {$product.ean13}

 

Comment puis-je appeler cette variable dans un fichier .js (le fichier "montheme/js/modules/blockcart/ajax-cart.js"

 

J'ai essayé + product.ean13 + , mais le résultat de l'affichage est "undifined"

 

Voici le code :

 

$('.layer_cart_img').html('<img class="layer_cart_img img-responsive" src="' + base_url + '/img/cms/illustrations_articles/' + product.ean13 + '.jpg" alt="' + product.name + '" title="' + product.name + '" />');

 

merci pour votre aide

 

Un truc que je ne comprends pas c'est que tu parles d'EAN13 à afficher dans le panier mais le bout de code semble vouloir dire que tu veux afficher des images qui seraient stockées dans le répertoire qui contient habituellement les images de pages CMS ET qui seraient nommées selon le code barre du produit.

 

Tu peux préciser ce que tu veux faire ?

Link to comment
Share on other sites

Un truc que je ne comprends pas c'est que tu parles d'EAN13 à afficher dans le panier mais le bout de code semble vouloir dire que tu veux afficher des images qui seraient stockées dans le répertoire qui contient habituellement les images de pages CMS ET qui seraient nommées selon le code barre du produit.

 

Tu peux préciser ce que tu veux faire ?

En fait, pour la gestion des images des articles, mon client les gères via FTP.

 

Quand il ajoute un nouvel articles, il lui suffit d'uploader la nouvelle image à un endroit bien précis en la nommant "codeEAN13.jpg".

Cela fonctionne très bien partout, sauf ici. (JS)

Link to comment
Share on other sites

active le mode debug quand tu as une page blanche

 

 

Voici l'erreur que j'ai :

 

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/home/leszarsotv/www/themes/theme1016/modules/blockcart/blockcart.tpl" on line 332 "{addJsDefL name=productean13}{$product->ean13 js=1}{/addJsDefL}" unexpected "js" attribute <-- thrown in /home/leszarsotv/www/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 332

Link to comment
Share on other sites

{strip}
 {addJsDef productean13=$product.ean13}
{/strip}
 

essaye un truc comme ca

 

J'ai été trop vite pour dire que ça marchait.

 

Effectivement je récupère bien le code EAN13 maintenant, par contre il y a un décalage.

 

J'ajoute le produit A au panier.

Ensuite j'ajoute le produit B au panier, j'ai le code EAN du produit A qui s'affiche.

J'ajoute le produit C au panier, j'ai le le code EAN du produit B qui s'affiche et ainsi de suite

Edited by pat2607 (see edit history)
Link to comment
Share on other sites

oui car en fait le product.ean13 est obtenu dans une boucle, il faudrait donc ajouter un id au product.ean13 et dans ton js car sinon ca écrase a chaque fois

donc il faut que le js recupere la valeur dans une div qui a un id (id product par exemple)

 

dans la boucle foreach du tpl:

<input type="hidden" id="ean13_{$product.id}" value="{$product.ean13}">
Edited by Alexandre Carette (see edit history)
Link to comment
Share on other sites

oui car en fait le product.ean13 est obtenu dans une boucle, il faudrait donc ajouter un id au product.ean13 et dans ton js car sinon ca écrase a chaque fois

donc il faut que le js recupere la valeur dans une div qui a un id (id product par exemple)

 

dans la boucle foreach du tpl:

<input type="hidden" id="ean13_{$product.id}" value="{$product.ean13}">

Là je dois avouer que je suis un peu perdu :-(

J'ai plusieurs boucle foreach dans mon tpl et ou que je le mette, je n'ai rien

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...