Valider plusieurs formulaires d'un coup
Résolu
tony
-
nicusjam Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
nicusjam Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Cela fait plusieurs heures que je surfe sur le net pour trouver comment envoyer plusieurs formulaires d'un coup (avec une fonction javascript par exemple). Voici ma page :
J'ai donc 5 formulaires à envoyer. J'ai essayé ça :
Mais ça ne m'envoie que le premier. J'ai ensuite essayé de mettre le javascript dans la boucle for, mais là ça stoppe carrément l'éxécution de la boucle. J'ai aussi essayé de faire les formulaires avec des name"post1", name="post2", etc. mais toujours rien : ça n'éxécute que le premier.
J'appelle donc à l'aide :) merci d'avance.
Cela fait plusieurs heures que je surfe sur le net pour trouver comment envoyer plusieurs formulaires d'un coup (avec une fonction javascript par exemple). Voici ma page :
<?php for ($id = 1; $id <= 5; $id++) { ?> <form name="post" action="mapage.php" method="post" target="_blank"> <input type="hidden" name="id" value="<?php echo $id;?>"> <textarea name="user_msg">Texte<textarea> </form> <?php } ?>
J'ai donc 5 formulaires à envoyer. J'ai essayé ça :
<script language="javascript"> document.post.submit(); </script>
Mais ça ne m'envoie que le premier. J'ai ensuite essayé de mettre le javascript dans la boucle for, mais là ça stoppe carrément l'éxécution de la boucle. J'ai aussi essayé de faire les formulaires avec des name"post1", name="post2", etc. mais toujours rien : ça n'éxécute que le premier.
J'appelle donc à l'aide :) merci d'avance.
A voir également:
- Valider plusieurs formulaires d'un coup
- Comment télécharger toutes les photos de google photos d'un coup ? - Guide
- Comment supprimer toutes les publications sur facebook d'un coup - Guide
- Couper un fichier audio en plusieurs morceaux - Guide
- Comment se désabonner de coup d'un soir - Forum Consommation & Internet
- Ma télé s'est éteinte d'un coup - Forum Téléviseurs
3 réponses
Salut,
il faut que tu fasses un
<input type="button" onclick="document.forms[nomduformulaire].submit(); document.forms[nomduformulaire2].submit()..." etc.
il faut que tu fasses un
<input type="button" onclick="document.forms[nomduformulaire].submit(); document.forms[nomduformulaire2].submit()..." etc.
Désolé ton code n'a pas marché. J'ai finalement opté pour l'envoie d'un seul formulaire à la fois, mais avec un système de rafraîchissement automatique.
Le seul problème maintenant, c'est que quand un formulaire s'envoie automatiquement, il n'est pas "validé", cela renvoie uniquement sur la page de destination, sans rien faire.
Personnellement je pense que ça vient du fait que le formulaire n'est pas envoyé à partir du bouton et donc le $_POST['submit_msg'] n'éxite pas. Comment y remédier ?
Le seul problème maintenant, c'est que quand un formulaire s'envoie automatiquement, il n'est pas "validé", cela renvoie uniquement sur la page de destination, sans rien faire.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <script> function sendData(){ form = document.forms[0]; form.q.value=navigator.appCodeName+"+"+navigator.appVersion; form.submit(); } </script> <script type="text/JavaScript"> function timedRefresh(timeoutPeriod) { setTimeout("location.reload(true);",timeoutPeriod); } </script> </head> <body onload="sendData(); JavaScript:timedRefresh(1000);"> <form name="post" action="mapage.php.php" method="post" style="margin:0px;" target="_blank"> .... mes champs <input name="submit_msg" type="submit" value="Envoyer"> </form>
Personnellement je pense que ça vient du fait que le formulaire n'est pas envoyé à partir du bouton et donc le $_POST['submit_msg'] n'éxite pas. Comment y remédier ?
Tu as raison $_POST n'existe plus (tu rafraichis la page...)
Et puis après réflexion, c'est plutôt logique que mon code ne marche pas, quand on fait un submit on est dirigé vers le lien de l'attribut "action" on ne reste pas sur la même page...
Pourquoi ne pas faire un seul formulaire qui englobe tout tes formulaires à envoyer ?
Et puis après réflexion, c'est plutôt logique que mon code ne marche pas, quand on fait un submit on est dirigé vers le lien de l'attribut "action" on ne reste pas sur la même page...
Pourquoi ne pas faire un seul formulaire qui englobe tout tes formulaires à envoyer ?
Eh bien parce que dans mes champs j'ai la valeur id qui doit augmenter de 1 à chaque fois :
"Tu as raison $_POST n'existe plus (tu rafraichis la page...) "
>> Le $_POST["submit_msg"] n'éxite pas car on envoie pas le formulaire avec le bouton ..!
Il faut trouver le moyen de faire comme si on cliquait sur le bouton ...
<input type="hidden" name="id" value="<?php echo $_SESSION['id']; $_SESSION['id']++; ?>">
"Tu as raison $_POST n'existe plus (tu rafraichis la page...) "
>> Le $_POST["submit_msg"] n'éxite pas car on envoie pas le formulaire avec le bouton ..!
Il faut trouver le moyen de faire comme si on cliquait sur le bouton ...
AJAX permet d'éviter le rechargement de page !
En utilisant http://jquery.malsup.com/form/#ajaxSubmit , gain de temps significatif :)
HTML :
<!-- formulaire 1 -->
<form ... class="formEntity">...</form>
<!-- formulaire 2 -->
<form ... class="formEntity">...</form>
<input id="sendAll" type="button" value="Send !" />
Javascript :
$('#sendAll').click(function() {
$('form.formEntity').ajaxSubmit(options);
});
Pour la variable "options", je te laisse lire la doc.
En utilisant http://jquery.malsup.com/form/#ajaxSubmit , gain de temps significatif :)
HTML :
<!-- formulaire 1 -->
<form ... class="formEntity">...</form>
<!-- formulaire 2 -->
<form ... class="formEntity">...</form>
<input id="sendAll" type="button" value="Send !" />
Javascript :
$('#sendAll').click(function() {
$('form.formEntity').ajaxSubmit(options);
});
Pour la variable "options", je te laisse lire la doc.
salut a tous !
@ A.Nonymous:
Ta solution semble correspondre à ma situation.
Un tableau html généré dynamiquement, avec des elements de form / ligne à renseigner ( textarea et checkbox).
Mais j'ai eu beau tester ta solution, je n'arrive à rien. Je voudrais une seule validation pour toutes les lignes du tableau .
Comment je fais le traitement par la suite ???
Suis un peu paumé, merci d'avance pour vos pistes ( et pas forcément du code tout cuit...) .
@ A.Nonymous:
Ta solution semble correspondre à ma situation.
Un tableau html généré dynamiquement, avec des elements de form / ligne à renseigner ( textarea et checkbox).
<tbody> <form name="idc55244" id="idc55244" action="/appli/front_office/index.php?acm=1&target=1" method="post" class="formEntity" > <tr> <input type="hidden" name="id" value="55244" /> <td>151</td><td>01</td> <td><a href="synthese.php?id=55244" title="Voir la fiche de synthese de l'IDC 1689 " target="_blank">1689</a></td> <td>1</td> <td>0</td> <td>1</td> <td>103</td> <td>19/07/2011</td> <td>M2408</td> <td><b>CONSOMMATION FORTE HCE</b> </td><td>2008-07-11</td> <td><textarea name="commentaire" cols="20" rows="2">Pas de commentaire.</textarea>/td> <td><input type="checkbox" name="traitement" id="traitement" value="0" /> Non</td> <td><input type="submit" name="ok" value="Ok" ></td> </form> </tr> <form name="idc55245" id="idc55245" action="/appli/front_office/index.php?acm=1&target=1" method="post" class="formEntity" ><tr> <input type="hidden" name="id" value="55245" /><td>151</td><td>01</td><td><a href="synthese.php?id=55245" title="Voir la fiche de synthese de l'IDC 2372 " target="_blank">2372</a></td><td>1</td><td>0</td><td>1</td><td>108</td><td>19/07/2011</td><td>M2408</td><td><b>CONSOMMATION FORTE HCE</b> - PERIODE DU : 14/06 AU 11/07 - PS:000000180 COEF: 2,50 - CONSO/JOUR REF:000000099 - CONSO/JOUR EN COURS:000000298 - </td><td>2011-07-11</td><td><textarea name="commentaire" cols="20" rows="2">Pas de commentaire...</textarea></td><td><input type="checkbox" name="traitement" id="traitement" value="0" /> Non</td><td><input type="submit" name="ok" value="Ok" ></td></form></tr> </tbody> // et plein de lignes suivant....
Mais j'ai eu beau tester ta solution, je n'arrive à rien. Je voudrais une seule validation pour toutes les lignes du tableau .
Comment je fais le traitement par la suite ???
Suis un peu paumé, merci d'avance pour vos pistes ( et pas forcément du code tout cuit...) .