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
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 + "¶meters=" + 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!