Jump to content

Problème $_POST


d0ud3

Recommended Posts

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))
{

post-374528-0-16348700-1340502195_thumb.jpg

post-374528-0-87758800-1340502293_thumb.jpg

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

Bonjour,

-Quelle est votre question ? vous tenez un monologue auquel je n'ai rien compris ! peut-être pas réveillé le dimanche .... :blink:

-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 ... :rolleyes:

Link to comment
Share on other sites

...je n'ai rien compris ! peut-être pas réveillé le dimanche .... :blink:

 

en un mot OUI :D

 

blague mis à part, d0ud3 :

1- vous modifiez un fichier tpl, vous avez bien (a) forcé la compilation et (B) 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

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

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

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

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...