Nous sommes actuellement le 23 Avr 2024, 16:50

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 2 message(s) ] 
Auteur Message
MessagePublié: 13 Jan 2010, 17:53 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 30 Sep 2009, 09:02
Message(s) : 4
Bonjour,

Je programme en PHP avec un peu de Javascript et sa librairie Prototype.

J'ai un formulaire X avec un bouton qui permet d'ajouter des champs supplémentaires au formulaire via un call Ajax. La réponse Ajax reçue, j'ajoute ensuite ces champs à mon formulaire avec la fonction Event.Update de Prototype.

Tout semble beau, mais bizarrement, quand je soumets mon formulaire, les champs qui ont été ajoutés dynamiquement ne se retrouvent pas dans la variable $_POST. Encore plus chiant, ça fonctionne sous Explorer, mais nulle part ailleurs. Je suis tellement habitué du contraire 8O

Mon bout de code:
Code :
function getDynamicFormFields(cle, div, parameters, insert)
{
 
   // Declaration
  var lResult = false;
 
  // Tester les paramètres
  // window.alert("Cle:" + cle + "\nDiv:" + div + "\nParam:" + parameters + "\nInsert:" + insert);
 
  // On envoie la requête au serveur
  var lRequest = new Ajax.Request(
    racine + "communs/async/php/crad_dynamicform.php",
    {
      method: "post",
      parameters: "cle=" + cle + "&div=" + div + "&parameters=" + parameters + "&insert=" + insert,
      asynchronous: false,
      onSuccess: function (pTransport) {
        //window.alert(pTransport.responseText);
            
            //On met à jour la liste
            if (insert!="")
            {
               $('dynadd_'+div).insert({ 'bottom' : decodeData(pTransport.responseText) });
               $('buttadd_'+div).writeAttribute({'onClick' : 'getDynamicFormFields(\''+cle+'\',\''+div+'\',\''+parameters+'\',\''+(parseInt(insert)+1)+'\');'});
            }
        else
            {
               $(div).update(decodeData(pTransport.responseText));
            }
      },
      onFailure: function (pTransport) {
        //window.alert(pTransport.status);
      }
    }
  );

  return lResult;
}


J'ai essayé seulement un truc dans le genre :
Code :
$(div).update('<input type="text" name="toto" value="1">');


et toto n'est pas passé en $_POST. Je sais qu'il y a manière de faire plus clean comme code, mais la fonction Element.Update de Prototype me permet de faire plusieurs choses en une seule ligne. Bref... HELP! :(


Haut
 Profil  
Répondre en citant  
MessagePublié: 14 Jan 2010, 12:32 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 30 Sep 2009, 09:02
Message(s) : 4
A ceux que ça intéresse, mon problème était celui-ci. Firefox n'aime pas :

Code :
<table><form></form></table>


Il fallait juste que mes tags de formulaire soient en dehors de mon tableau :

Code :
<form><table></table></form>


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 2 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site