Javascript: un submit pour plusieurs forms

Fermé
baylock Messages postés 2 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 5 février 2009 - 5 févr. 2009 à 13:58
baylock Messages postés 2 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 5 février 2009 - 5 févr. 2009 à 17:56
Bonjour à tous,

Pour des raisons un peu longues à expliquer, j'ai besoin de pouvoir valider plusieurs formulaires à l'aide d'un seul bouton submit.
Je ne suis pas à l'aise avec Javascript mais il semble que cela soit ma seule possibilité.
J'ai donc trouvé ce code en ligne qui semble faire ce que je veux:

<SCRIPT LANGUAGE="JavaScript">
/* Collect all forms passed by array and post it */
function submitFormsById(arFormsSubmit)
{
	var formCollector = document.createElement("form");
	with(formCollector)
	{
		method = "post";
		action = "traitement_donnees.php";
		name = "formCollector";
		id = "formCollector";
		style.display = "none";
	}

	for(var ix = 0; ix<arFormsSubmit.length;ix++)
		appendFormVals2Form(document.getElementById(arFormsSubmit[ix]), formCollector);

	document.body.appendChild(formCollector);
	formCollector.submit();
}


/* Function: add all elements from ``frmCollectFrom´´ and append them to ``frmCollector´´ before returning ``frmCollector´´*/
function appendFormVals2Form(frmCollectFrom, frmCollector) 
{
	var frm = frmCollectFrom.elements;
	for(var ix = 0 ; ix < frm.length ; ix++)
		frmCollector.appendChild(frm[ix]);
	return frmCollector;
}

</SCRIPT>

et le bouton:

<INPUT TYPE="submit" value="submit" name="nom" onClick="submitFormsById(Array('form1','form2', etc..))">

Ca fonctionne assez bien si ce n'est que toutes les données ne sont pas envoyées...

Voici un exemple de ce que j'obtiens si j'ai deux forms liées au bouton submit:

section_parent1=11
titre1=
reference1=
fabricant1=3
poids1=
prix1=100.00
prix_paire1=180.00
entree1=30
orientation1=
dimension1=8
ecartement1=
epaisseur1=
hex1=
ups1=

section_parent2=14
titre2=
reference2=
fabricant2=5
poids2=
prix2=100.00
prix_paire2=150.00
entree2=64
orientation2=
dimension2=1
ecartement2=
epaisseur2=
hex2=
ups2=

Comme vous pouvez le constater, les données de toutes les forms sont envoyés mais certaines données ne sont pas récupérées et ce, de manière assez aléatoire (du moins, je n'y trouve pas de logique).

Je sais que ce n'est pas un problème venant de moi car si dans les form, je permute "entree" et "orientation", j'aurai alors les données de "orientation" mais perdrai ceux de "entree".

Probablement un problème dans une des boucles du script mais je n'arrive pas à mettre le doigt dessus.

Quelqu'un saurait-il m'aider?

Merci!

1 réponse

baylock Messages postés 2 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 17:56
Après quelques heure de recherche, je n'ai toujours pas trouvé mais par contre, j'ai trouvé la logique...
Malgré l'affichage qui ne le laisse pas présager, le script ne tient compte que d'un champ sur deux.
Il y a donc un manifestement quelque chose au niveau de la boucle du script que je ne comprend pas.

Merci pour toute votre aide.
0