Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1855 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Formulaire à submit multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Formulaire à submit multiple

n°1569507
HuGoBioS
Posté le 04-06-2007 à 11:11:27  profilanswer
 

Bonjour à tous,
 
j'ai un petit soucis de compatibilité avec IE sur une fonction en JS :  
j'ai un formulaire avec deux boutons submit, et l'idée est de changer le form.action selon le bouton choisi (je sais, c'est pas optimal pour ceux qui ont desactivé le JS mais ce ne sont pas mes choix de prog)
 
sous FF ce code marche :

Code :
  1. var form=this.form;
  2. form.setAttribute('action', 'inscription_new.php');


 
mais impossible de le faire fonctionner sous ie... j'ai essayé  

Code :
  1. document.formulaire.action='inscription_new.php';


 
qui ne marche pas plus, qqn à une idée ? (à part recoder le form pour que ce soit la page appelée par le form qui fasse le tri?
 
Merci!


Message édité par HuGoBioS le 04-06-2007 à 12:46:18

---------------
-= In Kik00 101 I trust :o =-
mood
Publicité
Posté le 04-06-2007 à 11:11:27  profilanswer
 

n°1569509
Decapfour
Posté le 04-06-2007 à 11:13:30  profilanswer
 

document.getElementByID('iddetonform').action ?

Message cité 1 fois
Message édité par Decapfour le 04-06-2007 à 11:13:39
n°1569516
HuGoBioS
Posté le 04-06-2007 à 11:20:21  profilanswer
 

Decapfour a écrit :

document.getElementByID('iddetonform').action ?


marche pas non plus :/


---------------
-= In Kik00 101 I trust :o =-
n°1569531
Decapfour
Posté le 04-06-2007 à 11:36:04  profilanswer
 

document.forms['nomdetonform'].action=?
 
http://forum.alsacreations.com/top [...] ction.html
Si ca peut te servir


Message édité par Decapfour le 04-06-2007 à 11:37:03
n°1569538
HuGoBioS
Posté le 04-06-2007 à 11:42:05  profilanswer
 

Pas mieux :/
 
j'ai peut être plus les yeux en face des trous :
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>manifestations</title>
  5. <link href="/style/css.css" rel="stylesheet" type="text/css" >
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
  7. <!--une fonction de verification -->
  8. <script type="text/javascript">
  9. <!--
  10. function verif_formulaire()
  11. {
  12. //ca ca marche on s'en tape
  13. }
  14. //-->
  15. //ca ca marche sous FF, pas sous ie :/
  16. function cheque(formu)
  17. {
  18. var form=formu;
  19. document.formulaire.action='inscription_new.php';
  20. document.getElementByID('formulaire').action = 'inscription_new.php';
  21. document.forms['formulaire'].action = 'inscription_new.php';
  22. form.action='inscription_new.php';
  23. form.setAttribute('action', 'inscription_new.php');
  24. }
  25. function cb(formu)
  26. {
  27. var form=formu;
  28. document.formulaire.action='https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01';
  29. document.getElementByID('formulaire').action = 'https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01';
  30. document.forms['formulaire'].action = 'https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01';
  31. form.action='https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01';
  32. form.setAttribute('action', 'https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01');
  33. }
  34. </script>
  35. <script type="text/javascript">
  36. <!--
  37. //calcul du montant.
  38. function test_champ(champ) {
  39. //on s'en tape ca marche
  40. }
  41.   -->
  42. </script>
  43. </head>
  44. <body>
  45. <form name="formulaire" id="formulaire" onsubmit="return verif_formulaire();" method="post" action="">
  46. // j'ai un peu élagué
  47. <input type="hidden" name="action" value="submitted">
  48. <input type="submit" value="Je m'inscris et je paye par chèque" onclick="cheque(this.form);"  name="B1">
  49. <input type="submit" value="Je m'inscris et je paye par CB" onclick="cb(this.form);"name="B2"></div>
  50. </form>
  51. </body>
  52. </html>


 
j'ai loupé qqch ? :(


---------------
-= In Kik00 101 I trust :o =-
n°1569542
Decapfour
Posté le 04-06-2007 à 11:47:12  profilanswer
 

Fait un alert(document.getElementById('formulaire'));
Si ca te donne [object] c'est qu'il a trouvé la balise formulaire et après c'est qu'une question d'attribut.

n°1569549
HuGoBioS
Posté le 04-06-2007 à 11:58:23  profilanswer
 

ca me donne effectivement object...
j'ai demandé un alert de document.getElementById('formulaire').action ca me donne object aussi
par contre document.getElementById('formulaire').action.value ca me donne "submitted"
 
[:alex666]


---------------
-= In Kik00 101 I trust :o =-
n°1569559
Decapfour
Posté le 04-06-2007 à 12:09:20  profilanswer
 

.action.value ou .action.text essaye

n°1569565
HuGoBioS
Posté le 04-06-2007 à 12:14:03  profilanswer
 

Decapfour a écrit :

.action.value ou .action.text essaye


j'ai tenté le .value, j'ai pas pensé au .text essayons :d


---------------
-= In Kik00 101 I trust :o =-
n°1569569
HuGoBioS
Posté le 04-06-2007 à 12:17:29  profilanswer
 

marche pas...

 

d'après le DOM Inspector de FF, c'est bien action le nodeName adéquat... je hais le JS :fou:


Message édité par HuGoBioS le 04-06-2007 à 12:17:45

---------------
-= In Kik00 101 I trust :o =-
mood
Publicité
Posté le 04-06-2007 à 12:17:29  profilanswer
 

n°1569579
gatsu35
Blablaté par Harko
Posté le 04-06-2007 à 12:31:13  profilanswer
 

le input name="action" n'a rien n'a foutre là car il interfère avec l'attribut "action" du form.
 
renomme ton input et basta.
 
Accessoirement ton code devrais ressembler à ça :  

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2.     <html>
  3.     <head>
  4.     <title>manifestations</title>
  5.     <link href="/style/css.css" rel="stylesheet" type="text/css" >
  6.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
  7.     <!--une fonction de verification -->
  8.     <script type="text/javascript">
  9.    
  10.     function goMyForm(elm, value) {
  11.  var arrLink = { cheque : 'inscription_new.php', cb:'https://ecom.cimetz.com/telepaie/cgishell.exe/epaie01'};
  12.  with(elm) {
  13.   form.action = arrLink[value];
  14.   form.submit();
  15.  }
  16.     }
  17.    
  18.     </script>
  19.    
  20.     </head>
  21.     <body>
  22.     <form name="formulaire" id="formulaire" onsubmit="return verif_formulaire();" method="post" action="">
  23.    
  24.         <input type="hidden" name="autreaction" value="submitted">
  25.         <input type="submit" value="Je m'inscris et je paye par chèque" onclick="goForm(this, 'cheque');"  name="B1">
  26.         <input type="submit" value="Je m'inscris et je paye par CB" onclick="goForm(this, 'cb');"name="B2"></div>
  27.         </form>
  28.     </body>
  29.     </html>

n°1569585
HuGoBioS
Posté le 04-06-2007 à 12:46:07  profilanswer
 

Bien, vu, le pb était du au champ hidden appelé "action", maintenant ca marche, mais avec les fonctions cb() et cheque()
 
la goForm(,) cause un pb dans ie...
 
Merci à vous!


---------------
-= In Kik00 101 I trust :o =-
n°1569586
gatsu35
Blablaté par Harko
Posté le 04-06-2007 à 12:48:33  profilanswer
 

goForm(this, 'cheque'); <== regarde bien le nom de ma fonction je l'ai appelée goMyForm au lieu de goForm.
 
Faudrait faire un effort et lire le code qu'on te fourni

n°1569594
HuGoBioS
Posté le 04-06-2007 à 12:54:10  profilanswer
 

gatsu35 a écrit :

goForm(this, 'cheque'); <== regarde bien le nom de ma fonction je l'ai appelée goMyForm au lieu de goForm.
 
Faudrait faire un effort et lire le code qu'on te fourni


j'ai passé 3h sur cette connerie, desolé de plus être aussi attentif qu'au début :o


---------------
-= In Kik00 101 I trust :o =-
n°1569597
FlorentG
Posté le 04-06-2007 à 12:59:35  profilanswer
 

C'est extrêmement pas bien de gérer un submit avec du JavaScript :o Accessibilité, etc.

 

Le mieux (sachant qu'on peux pas utiliser un <button> à cause de IE), en regest de mettre un name sur les deux submit :

Code :
  1. <input type="submit" name="action" value="Envoyer 1" />
  2. <input type="submit" name="action" value="Envoyer 2" />


Et de tester server-side quel bouton à été cliqué, genre :

 
Code :
  1. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  2.  
  3.  if(isset($_POST['action'])) {
  4.  
  5.     if($_POST['action'] == 'Envoyer 1') {
  6.  
  7.        require 'inscription_new.php';
  8.  
  9.     } else {
  10.  
  11.        require 'pouet.php';
  12.     }
  13.  }
  14. }

Message cité 1 fois
Message édité par FlorentG le 04-06-2007 à 12:59:54
n°1569601
FlorentG
Posté le 04-06-2007 à 13:04:32  profilanswer
 

Tiens d'ailleurs je remarque aussi que tes deux submit servent à choisir le moyen de règlement.
 
Dans ce cas là, pour un soucis d'usabilité, il vaudrait mieux proposer deux boutons radios, l'internaute choisirait son moyen de paiement ainsi. Ensuite après envoi du formulaire, une redirection côté serveur permettera de l'envoyer sur la bonne page.
 
On mettera comme valeur par défaut le moyen de paiement le plus utilisé. L'objectif étant que l'inscription soit la plus rapide. On évite aussi les possibles erreurs, à tous les coups y'a des mecs qui vont cliqué sur le premier bouton rencontré sans regarder l'intitulé.

n°1569625
HuGoBioS
Posté le 04-06-2007 à 13:24:53  profilanswer
 

FlorentG a écrit :

C'est extrêmement pas bien de gérer un submit avec du JavaScript :o Accessibilité, etc.
 
Le mieux (sachant qu'on peux pas utiliser un <button> à cause de IE), en regest de mettre un name sur les deux submit :

Code :
  1. <input type="submit" name="action" value="Envoyer 1" />
  2. <input type="submit" name="action" value="Envoyer 2" />


Et de tester server-side quel bouton à été cliqué, genre :
 

Code :
  1. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  2.  
  3.  if(isset($_POST['action'])) {
  4.  
  5.     if($_POST['action'] == 'Envoyer 1') {
  6.  
  7.        require 'inscription_new.php';
  8.  
  9.     } else {
  10.  
  11.        require 'pouet.php';
  12.     }
  13.  }
  14. }



 

FlorentG a écrit :

Tiens d'ailleurs je remarque aussi que tes deux submit servent à choisir le moyen de règlement.
 
Dans ce cas là, pour un soucis d'usabilité, il vaudrait mieux proposer deux boutons radios, l'internaute choisirait son moyen de paiement ainsi. Ensuite après envoi du formulaire, une redirection côté serveur permettera de l'envoyer sur la bonne page.
 
On mettera comme valeur par défaut le moyen de paiement le plus utilisé. L'objectif étant que l'inscription soit la plus rapide. On évite aussi les possibles erreurs, à tous les coups y'a des mecs qui vont cliqué sur le premier bouton rencontré sans regarder l'intitulé.


je sais bien, mais c'est pas moi qui ai bâti le cahier des charges ... [:spamafote]
 
perso j'aurai traité ca par le serv, je HAIS le javascript, donc moins j'en fais mieux je me porte ;)  
toutes les inscriptions sont re confirmées après par un être humain, ca devrait pas trop être gênant...


---------------
-= In Kik00 101 I trust :o =-
n°1569627
FlorentG
Posté le 04-06-2007 à 13:27:08  profilanswer
 

Casse les jambes à celui qui à fait le cahier des charges :D Vu qu'il y a du pognon en jeu, l'accessibilité et l'usabilité devraient êtres prioritaires...

n°1569653
HuGoBioS
Posté le 04-06-2007 à 14:06:19  profilanswer
 

FlorentG a écrit :

Casse les jambes à celui qui à fait le cahier des charges :D Vu qu'il y a du pognon en jeu, l'accessibilité et l'usabilité devraient êtres prioritaires...


[:matleflou]  
 
c'est faible comme sommes, c'est pour des conférences, ca dépassera jamais les 10€ :o
 
ps: je te défie de faire entendre raison à un ingé borné de plus de 60ans [:cupra]


---------------
-= In Kik00 101 I trust :o =-
n°1569678
gatsu35
Blablaté par Harko
Posté le 04-06-2007 à 14:25:48  profilanswer
 

HuGoBioS a écrit :

je sais bien, mais c'est pas moi qui ai bâti le cahier des charges ... [:spamafote]
 
perso j'aurai traité ca par le serv, je HAIS le javascript, donc moins j'en fais mieux je me porte ;)  
toutes les inscriptions sont re confirmées après par un être humain, ca devrait pas trop être gênant...


Le javascript c'est bien, c'est le bonheur quand on associe HTML propre et semantique, CSS et JS non obstrusif


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Formulaire à submit multiple

 

Sujets relatifs
[Resolu]Attente fin d'appel de script PHP avec AJAX[résolu]/[ACCESS]soustraction formulaire
[résolu]Calcul avec Batch[resolu]Jointure d'un COUNT dans une requête
[updated]- [c] centraliser declaration de variable.[RESOLU] Tableaux d'objets en PHP
[Résolu]CheckBoxList c#Erreur SQL [RESOLU]
[Resolu/VBA] Priorité des applications 
Plus de sujets relatifs à : [Résolu] Formulaire à submit multiple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR