d0ud3 Posted June 24, 2012 Share Posted June 24, 2012 (edited) Bonjour, J’essaye désespérément de faire passer la valeur d’un champ de product.tpl vers CartController.php Mon champ se trouve dans le fichier product.tpl vers la ligne 230 dans le block ou l’on ajoute le produit au panier (<form id="buy_block" … method ="post") Voici mon champ : <input type="hidden" name="longueur" value="12" /> En cliquant sur « Ajouter au panier », celà envoi la donné vers CartController.php, mais en récupérant la valeur avec TOOLS:GetValue(‘longueur’,1); j’obtient toujours la valeur par défaut !!! Alors que si je recupère le id_product, TOOLS:GetValue(‘id_product’,NULL); me récupère bien la valeure alors que je n’ai rien changé de particulier… J’ai aussi essayé avec $_POST['longueur'], et par la methode GET et celà ne change rien. Pouvez-vous m’aider s’il vous plaît. Cordialement product.tpl {if ($product->show_price AND !isset($restricted_country_mode)) OR isset($groups) OR $product->reference OR (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)} <!-- add to cart form--> <form id="buy_block" {if $PS_CATALOG_MODE AND !isset($groups) AND $product->quantity > 0}class="hidden"{/if} action="{$link->getPageLink('cart.php')}" method="post"> <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="{$static_token}" /> <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" /> <input type="hidden" name="add" value="1" /> <input type="hidden" name="id_product_attribute" id="idCombination" value="" /> <input type="hidden" name="longueur" value="12" /> </p> <!-- prices --> {if $product->show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE} <p class="price"> {if !$priceDisplay || $priceDisplay == 2} {assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 2)} {assign var='productPriceWithoutRedution' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)} {elseif $priceDisplay == 1} {assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 2)} CartController.php : $this->errors[] = Tools::displayError('Invalid token'); // Update the cart ONLY if $this->cookies are available, in order to avoid ghost carts created by bots if (($add OR Tools::getIsset('update') OR $delete) AND isset($_COOKIE[self::$cookie->getName()])) { //get the values $idProduct = (int)(Tools::getValue('id_product', NULL)); $idProductAttribute = (int)(Tools::getValue('id_product_attribute', Tools::getValue('ipa'))); $customizationId = (int)(Tools::getValue('id_customization', 0)); $qty = (int)(abs(Tools::getValue('qty', 10))); //Modifier by d0ud3 $longueur = Tools::getValue('longueur',21); if ($qty == 0) $this->errors[] = Tools::displayError('Null quantity'); elseif (!$idProduct) $this->errors[] = Tools::displayError('Product not found'); else { $producToAdd = new Product((int)($idProduct), true, (int)(self::$cookie->id_lang)); if ((!$producToAdd->id OR !$producToAdd->active) AND !$delete) if (Tools::getValue('ajax') == 'true') die('{"hasError" : true, "errors" : ["'.Tools::displayError('Product is no longer available.', false).'"]}'); else $this->errors[] = Tools::displayError('Product is no longer available.', false); else { /* Check the quantity availability */ if ($idProductAttribute AND is_numeric($idProductAttribute)) { Edited June 24, 2012 by d0ud3 (see edit history) Link to comment Share on other sites More sharing options...
yvon38 Posted June 24, 2012 Share Posted June 24, 2012 Bonjour, -Quelle est votre question ? vous tenez un monologue auquel je n'ai rien compris ! peut-être pas réveillé le dimanche .... -Soyez sympa en vous disant que les lecteurs de ce forum cherchent des réponses simples à des questions ...simples..Aussi veuillez exposer clairement et simplement votre problème, pourquoi vous avez un problème et je pense que vous aurez des réponses.Nous ne sommes pas tous développeur de métier ... Link to comment Share on other sites More sharing options...
coeos.pro Posted June 24, 2012 Share Posted June 24, 2012 ...je n'ai rien compris ! peut-être pas réveillé le dimanche .... en un mot OUI blague mis à part, d0ud3 : 1- vous modifiez un fichier tpl, vous avez bien (a) forcé la compilation et ( vous n'utilisez pas le cache et ©vidé le cache navigateur ? 2- le bouton "ajouter au panier" il est en ajax ? au quel cas il faut modifier certains fichiers js Link to comment Share on other sites More sharing options...
d0ud3 Posted June 24, 2012 Author Share Posted June 24, 2012 Bonjour, Pour répondre à yvon38, ma question est : Comment envoyer une variable d'un fichier .tpl vers un fichier .php ? Pour répondre à coeos.pro : Oui la compilation est forcée automatique à chaque rafraîchissement de la page. Voici le code du bouton : <p{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} style="display: none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p> {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if} <div class="clear"></div> </form> La balise <form> à pour attribut method="post" Je ne vois pas d'ajax... Je précise que pour d'autres champs qui sont dans la balise form concernée, j'arrive à récupérer les valeurs sur le fichier CartController.php. Se sont des champs qui étaient déjà là par défaut. Le problème est qu'à partir du moment ou j'ajoute un nouveau champ, je n'arrive pas à le récupérer sur le CartController.php, même en ayant renseigné l'attribut name du champ... Cordialement Link to comment Share on other sites More sharing options...
coeos.pro Posted June 24, 2012 Share Posted June 24, 2012 "Je ne vois pas d'ajax..." quand tu clique sur "ajouter au panier" l'image du produit se déplace sur l'écran pour se mettre dans le panier ou alors il y a rechargement de la page (ou redirection sur le panier) ? Link to comment Share on other sites More sharing options...
d0ud3 Posted June 24, 2012 Author Share Posted June 24, 2012 Il n'y a pas l'animation qui fait déplacer l'image du produit vers le panier. Les valeurs des champs sont envoyés vers le fichier cart.php. Il n'y a pas de redirection vers le panier. Link to comment Share on other sites More sharing options...
coeos.pro Posted June 24, 2012 Share Posted June 24, 2012 Si le produit apparaît dans le bloc panier sans rechargement de la page ni changement de page alors c'est de l'ajax, Link to comment Share on other sites More sharing options...
d0ud3 Posted June 24, 2012 Author Share Posted June 24, 2012 Sais tu comment se nomme le fichier .js ou se trouve le code ajax ? Link to comment Share on other sites More sharing options...
coeos.pro Posted June 24, 2012 Share Posted June 24, 2012 Si tu regardes le code de ta page normalement tu ne vois qu'un seul fichier ajax : modules/blockcart/ajax-cart.js 1 Link to comment Share on other sites More sharing options...
d0ud3 Posted June 24, 2012 Author Share Posted June 24, 2012 Merci à toi, celà correspond bien au fichier que je recherché, je ne pensais pas que le serveur pouvait recevoir des paramètre de cette manière, je suis débutant en web. La ligne 202 de ce fichier permet de modifier la valeur des variables que l'on veut envoyer au serveur. Cordialement !!! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now