Jump to content

envoyer une valeur dans le champs textField0


miss anaïs

Recommended Posts

Bonjour

comme le dit le titre j'aimerai trouver un moyen d'envoyer une valeur dans le champ textField0 autrement dit dans le champs text de personnalisation d'un produit, via une autre page.

le but étant d'une autre page, possédant une formulaire dans lequel le visiteur a le choix parmi des centaine de référence de choisir celle de son choix puis que la valeur de son choix soit poster dans le champs textField0 de la page product.php.

.. je pourrai le faire via le mode classique des attributs et faire de chaque référence une option, mais vu qu'iil y en a ici des centaines... et cela prendrai trop de place sur la page product d'origine .. ou alors il faudrais que je puisse mettre ces attribut dans un petit tableau masquable directement sur la page product.php..

donc je pensais devoir modifier la page product.php pour y insérer une fonction $_POST comme valeur

<input id="textField1" class="customization_block_input" type="text" value=<?php $_POST['1ere_image'] ?> name="textField16"/>

ou

<input id="textField1" class="customization_block_input" type="text" value="$_GET['id_product']" name="textField16"/> 

mais le prob c'est que le champ textfield n'est pas dans product.php vu qu'il est généré sur la page produit comme par exemple product.php?id_product=13



étant plutot sous-doué en php et compagnie, je fait appel a vous pour me donner des idées..

merci pour votre aide.


Anaïs

Link to comment
Share on other sites

Je suppose que la fenêtre qui contient les centaines de références est ouverte via la page produit? Si c'est le cas tu peux utiliser ce petit code javascript.

if(self.opener){
   var id = "textField1"; // ID du champ de la page mère à modifier
   opener.getElementById(id).value = " LA VALEUR A LUI DONNER ";
}

Link to comment
Share on other sites

Bonjour Pierre-Yves,

merci de ta réponse,

effectivement la page est ouverte depuis la page product ... soit vers une nouvelle page, soit directement en include dans la description du produits... je sais pas ce qui est le mieux encore...

Donc j'ai essayer de metre le code que tu m'a donner dans la page product.php

je suis pas sur d'avoir compris son fonctionnement , je l'ai renseigné comme ceci :

if(self.opener){
   var id = "textField1"; // ID du champ de la page mère à modifier
   opener.getElementById(id).value ="$_GET['id_product']";
} 





avec la fonction get pour testé la récupe de la variable par l'url.. et je l'ai mis à cette endroit :

function textRecord(Product $product, Cart $cart)
{

if(self.opener){
   var id = "textField1"; // ID du champ de la page mère à modifier
   opener.getElementById(id).value ="$_GET['id_product']";
} 
   global $errors;

   if (!$fieldIds = $product->getCustomizationFieldIds())
       return false;
   $authorizedTextFields = array();
   foreach ($fieldIds AS $fieldId)
       if ($fieldId['type'] == _CUSTOMIZE_TEXTFIELD_)
           $authorizedTextFields[intval($fieldId['id_customization_field'])] = 'textField'.intval($fieldId['id_customization_field']);
   $indexes = array_flip($authorizedTextFields);
   foreach ($_POST AS $fieldName => $value)
       if (in_array($fieldName, $authorizedTextFields) AND !empty($value))
       {
           if (!Validate::isMessage($value))
               $errors[] = Tools::displayError('Invalid message');
           else
               $cart->addTextFieldToProduct(intval($product->id), $indexes[$fieldName], $value);





Seuelement , j'ai ensuite une " Parse error: syntax error, unexpected T_VAR in ...." sur la ligne 48 soit celle du var id=....

j'ai essayer de metre le code en haut de page apres <?php ... même probleme


pourrais-je avoir plus de détails sur le fonctionnement de ce code ? mci =)

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