Envoyer plusieurs formulaires avec un seul submit

Signaler
Messages postés
26
Date d'inscription
jeudi 25 septembre 2003
Statut
Membre
Dernière intervention
6 juin 2005
-
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
Bonjour,

j'ai n formulaires form_1,form_2.... ou form["1"], form["2"]....

que faut il faire pour tous les envoyer via un seul bouton submit ?

j'ai essayé avec "for", "while"... mais à chaque le problème réside dans la définition du formulaire concerné : document.form[i].Submit() (que javascript ne reconnait pas...)

en attendant votre aide...

merci d'avance !!!

florian

7 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

même en mettant le même name aux form,
en faisant un for et submit() ça ne
fonctionnerait pas encore : le 1er submit
ferait changer de page donc le script
"n'existerait plus".
à faire dans des pop-up successives ?

Cordialement. Bul. ~
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Déjà, c'est : document.forms[i].submit() que javascript reconnaitra plus volontier.
Tu peux, pour contourner le problème, rajouter : "target=_blank" dans chaque formulaire, ce qui aura pour conséquence d'ouvrir autant de fenêtres que de formulaires (mais qui peuvent se fermer automatiquement grâce à javascript :

function quitter()
{
opener=self;
window.close();
}



C'est un peu "bricolé", mais ça marche.

Cordialement
Roro webDev
Messages postés
26
Date d'inscription
jeudi 25 septembre 2003
Statut
Membre
Dernière intervention
6 juin 2005

C'est pas le problème de la destination parceque les résultats s'affichent tous dans une iframe...
C'est le problème du submit de tous les formulaires :
j'ai : <form name='forms["1"]'> <form name='forms["2"]'> <form name='forms["3"]'> ... <form name='forms["n"]'>

function envoyer(){
n=<? echo $n; ?>;
j=1;
while(j<=n)
{
document.forms[j].submit();
j++;
}
}

on me dit : "document.forms[....] a la valeur Null ou n'est pas un objet"

cordialement
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

teste plutot :
for (var j=0; j<document.forms.length; j++)
document.forms[j].submit();

C'EST un problème de destination, pour la raison évoquée par Bul.
Enfin, évite de nommer des formulaires avec form(mots réservé).
nomme-les autrement, par exemple tartempion1, tartempion2 ... la fonction que je t'ai donnée marchera quand-même, sous les conditions données plus haut.
Et bien-sûr, il faut fermer les balises form.

Cordialement
Roro webDev
Messages postés
26
Date d'inscription
jeudi 25 septembre 2003
Statut
Membre
Dernière intervention
6 juin 2005

si on met tartempion1, tartempion2...
comment on fait après sous js pour spécifier i??
parceque document.formsi.submit() ça va pas marcher? si?

merci
cordialement
Messages postés
26
Date d'inscription
jeudi 25 septembre 2003
Statut
Membre
Dernière intervention
6 juin 2005

bonjour,

j'ai aussi oublié uen autre petite question...
pourquoi quand on fait le submit via JS, cela ne déclanche pas l'action "onsubmit" pour vérifier le formulaire...

comment peut on faire une boucle pour vérifier tous les forms avant envoit... et d'arreter tous le processus si la fonction de vérification trouve une erreur???
du style
fonction envoyer {
for(......){
if(Verif(document.forms[i])==false){ //et là on stope tous }
}
// et si rien n'a était stoppé, alors on lance l'envoi
for(.....){
......submit()
}
}

merci
cordialement
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour
Question 1 :
document.forms[j] représente le formulaire n° j+1 de ta page, quelque soit son nom.

Question 2 :
Ne pas mettre de bouton submit, dans le formulaire, mais un bouton button avec onclick="envoyer()".
Après, c'est la fonction envoyer qui se charge d'envoyer ou non le(s) formulaire(s) grâce à ...submit(). Comme ça, si le client désactive javascript, ça n'envoie pas le formulaire, tout simplement.

Cordialement
Roro webDev