Envoyer plusieurs formulaires avec un seul submit

cs_lcmartin Messages postés 26 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 6 juin 2005 - 16 févr. 2005 à 21:51
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007 - 17 févr. 2005 à 11:07
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 févr. 2005 à 08:56
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. ~
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
17 févr. 2005 à 10:02
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
0
cs_lcmartin Messages postés 26 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 6 juin 2005
17 févr. 2005 à 10:29
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
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
17 févr. 2005 à 10:43
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lcmartin Messages postés 26 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 6 juin 2005
17 févr. 2005 à 10:46
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
0
cs_lcmartin Messages postés 26 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 6 juin 2005
17 févr. 2005 à 10:51
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
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
17 févr. 2005 à 11:07
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
0
Rejoignez-nous