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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Plusieurs "submit" dans une meme page ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Plusieurs "submit" dans une meme page ?

n°1454623
guepe
J'ai du noir sur la truffe ?
Posté le 09-10-2006 à 23:23:22  profilanswer
 

:hello:  
Legèrement burne en html, voilà mon ptit soucis...
En restant simple (seulement html) est il possible d'avoir 2 boutons de type "submit" qui ne feront par la meme action ?
 
Le probleme est la redondance du code :
<form enctype="multipart/form-data" action="http://www.aaaa.com/mail.php" method="post">
<form action="https://www.bbbb.com/cgi-bin/webscr" method="post">
 
 
Est ce qu'on peut renommer un des boutons, ou associer une action au bon bouton pour qu'ils ne soient pas en conflit ?
Le truc c'est que je poste tout ca sur l'equivalent d'un forum acceptant du html (un portail en fait quoi...) donc ma liberté d'action n'est pas enorme...
 
Merci d'avance de pas faire partir ca en kamoulox (j'ai un peu utilisé la fonction recherche) :)
 
 [:brainwasher]

mood
Publicité
Posté le 09-10-2006 à 23:23:22  profilanswer
 

n°1454625
omega2
Posté le 09-10-2006 à 23:51:15  profilanswer
 

un formulaire ne peut avoir qu'une seule action et il ne peut pas y avoir d'imbrication de formulaire. Donc il n'est pas possible de dire que le formulaire envéra les données à l'adresse indiqué par l'action de telle ou telle balise "<form>".
Par contre, ce qui doit être possible de faire c'est de changer la valeur du action du formulaire quand on clique sur tel ou tel bouton. Ca n'est plus des boutons de validation au sens html et ca ne marchera pas de toute maniére pour 10% des visiteurs potentiels. (les fameux 10% qui ont javascript de désactivé dans leur navigateur.) Je ne suis pas assez fort pour te pondre le code javascript dans la seconde.
Je te laisse donc chercher un peu dans cette direction là.
 
Bonne recherche.

n°1454661
flo850
moi je
Posté le 10-10-2006 à 09:21:28  profilanswer
 

tu as un bouton qui est un vrai submit et un de type  
<input ytpe="button" onClick="this.form.action='https://www.bbbb.com/cgi-bin/webscr'" value="Valid deux >
 
sinon, tu peux aussi faire deux formulaire distincts sur la meme page

n°1454690
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-10-2006 à 10:02:24  profilanswer
 

flo850 a écrit :

tu as un bouton qui est un vrai submit et un de type  
<input ytpe="button" onClick="this.form.action='https://www.bbbb.com/cgi-bin/webscr'" value="Valid deux >


Fauut rajouter le submit du form quelque part ;)
 

flo850 a écrit :

sinon, tu peux aussi faire deux formulaire distincts sur la meme page


Moi je partirais plutot de là! Mais j'imagine qu'il a en fait les mêmes champs dans ces deux formulaires. Du coup en js, je ferais une recopie des champs du 1er dans le 2eme mais en hidden. Ensuite on rajoute un onchange sur chaque input du 1er pour qu'il recopie sa valeur dans le correspondant du 2eme et zouuu roulez jeunesse!
Un truc dans le genre:

Code :
  1. window.onload = function (e){
  2.     //on nettoye le formulaire 2
  3.     var inputsNodes = document.getElementById('f2').getElementsByTagName('input');
  4.     for(var i=inputsNodes.length-1; i>=0; i--){
  5.       if ( inputsNodes[i].getAttribute('type') != 'submit'){
  6.         document.getElementById('f2').removeChild(inputsNodes[i]);
  7.       }
  8.     }
  9.     //on recopie le formulaire 1 dans le 2
  10.     inputNodes = document.getElementById('f1').getElementsByTagName('input');
  11.     for(var i=0; i<inputNodes.length; i++){
  12.       if ( inputNodes[i].getAttribute('type') != 'submit'){
  13.         var dupNode = document.createElement('input');
  14.         dupNode.setAttribute('type', 'hidden');
  15.         dupNode.setAttribute('name', inputNodes[i].name);
  16.         document.getElementById('f2').appendChild(dupNode);
  17.         // ajout de onchange sur le input de f1
  18.         inputNodes[i].onchange = function (e){
  19.           var tNodes = document.getElementById('f2').getElementsByTagName('input');
  20.           for(var j=0; j<tNodes.length; j++){
  21.             if ( this.getAttribute('name') == tNodes[j].getAttribute('name')){
  22.               tNodes[j].value = this.value;
  23.               return true;
  24.             }
  25.           }
  26.         }
  27.       }
  28.     }
  29.   }


et du coup dans le html

Code :
  1. <form id="f1" enctype="multipart/form-data" action="http://www.aaaa.com/mail.php" method="post">
  2.    <input type="text" name="pouet1" value="">
  3.    <input type="text" name="pouet2" value="">
  4.    <input type="text" name="pouet3" value="">
  5.    <input type="submit" value="valider1"/>
  6. </form>
  7. <form id="f2" action="https://www.bbbb.com/cgi-bin/webscr" method="post">
  8.    <input type="text" name="pouet1" value="">
  9.    <input type="text" name="pouet2" value="">
  10.    <input type="text" name="pouet3" value="">
  11.    <input type="submit" value="valider2"/>
  12. </form>


 
Et ça marcherait que le visiteur ait ou n'ait pas le js activé!

n°1454703
omega2
Posté le 10-10-2006 à 10:34:26  profilanswer
 

anapajari > Sauf que s'il n'a pas de js activé, son second formulaire partira tout vide sans que le visiteur ne comprenne pourquoi.
 
En fait, la seule façon sure à 100% c'est d'avoir un script serveur qui saura quel serveur appelé derriére à partir de la valeur du bouton utilisé pour valider le formulaire.

n°1454706
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-10-2006 à 10:36:07  profilanswer
 

omega2 a écrit :

anapajari > Sauf que s'il n'a pas de js activé, son second formulaire partira tout vide sans que le visiteur ne comprenne pourquoi.


Si le visiteur n'a pas le js activé, il y a deux formulaires différents à l'écran, chacun avec une action différente [:spamafote]
 

omega2 a écrit :

En fait, la seule façon sure à 100% c'est d'avoir un script serveur qui saura quel serveur appelé derriére à partir de la valeur du bouton utilisé pour valider le formulaire.


D'accord à 200%, sauf que guepe ne semble pas en mesure de pouvoir utiliser un script serveur!

n°1454709
omega2
Posté le 10-10-2006 à 10:38:16  profilanswer
 

anapajari a écrit :

Si le visiteur n'a pas le js activé, il y a deux formulaires différents à l'écran, chacun avec une action différente [:spamafote]

ha oui, autant pour moi.

n°1454723
flo850
moi je
Posté le 10-10-2006 à 10:56:52  profilanswer
 

anapajari a écrit :

Fauut rajouter le submit du form quelque part ;)
 


faut que j'arrete de repondre avant le café  :sweat:  
 
en plus ta solution est plus propre

n°1455789
guepe
J'ai du noir sur la truffe ?
Posté le 11-10-2006 à 22:16:10  profilanswer
 

Ouaip,
merci a tous de vos reponses rapides...
En effet pas si simple comme probleme si on veut rester en html... J'etudie un peu le script JS, je vois si ca fonctionne sur ma page (meme pas sur en fait... mais ya pas de raison) et je vous donne des nouvelles !
 
Merci de vous pencher sur mon cas :)
 
(au fait, ya 1 formulaire complet avec bouton submit, et un autre qui n'est pas tout a fait un formumlaire, mais un bouton direct (type lien, mais en fait c'est du paypal... je ne peux guere modifier son code.) Bref, je regarde ca et je vous donne plus de précisions :)

n°1455815
FlorentG
Posté le 12-10-2006 à 08:41:23  profilanswer
 

On peut utiliser deux boutons submit :

<form>
...
<input type="submit" name="pouet" value="Tagada" />
<input type="submit" name="pouet" value="Pouet" />


Et on retrouve dans les données POST un élément "pouet" avec la valeur spécifiée dans l'attribut value.
 
On aurait aussi pu faire :

<button name="pouet" value="zorglub">Pouet</button>
<button name="pouet" value="applejack">Tagada</button>


Beaucoup plus propre, mais évidemment pas géré par IE... On se rend compte d'ailleurs que ça devient vraiment grave, le bouzin n'étant même pas capable de gérer la base de l'HTML4

mood
Publicité
Posté le 12-10-2006 à 08:41:23  profilanswer
 

n°1455836
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-10-2006 à 10:10:28  profilanswer
 

FlorentG a écrit :

On peut utiliser deux boutons submit :

<form>
...
<input type="submit" name="pouet" value="Tagada" />
<input type="submit" name="pouet" value="Pouet" />


Et on retrouve dans les données POST un élément "pouet" avec la valeur spécifiée dans l'attribut value.
 
On aurait aussi pu faire :

<button name="pouet" value="zorglub">Pouet</button>
<button name="pouet" value="applejack">Tagada</button>


Beaucoup plus propre, mais évidemment pas géré par IE... On se rend compte d'ailleurs que ça devient vraiment grave, le bouzin n'étant même pas capable de gérer la base de l'HTML4


d'accord à 200% mais ça ne résoud pas son problème :D
[si j'ai tout compris]Il ne cherche pas a avoir deux submits différents, qui déclencheraient deux traitements différents cotés serveur, mais le même formulaire donc le action varie en fonction du bouton cliqué ...[/si j'ai tout compris]

n°1455889
FlorentG
Posté le 12-10-2006 à 11:13:48  profilanswer
 

ah ok

n°1455955
leflos5
On est ou on est pas :)
Posté le 12-10-2006 à 12:14:39  profilanswer
 

CA serait tellement plus simple de faire comme FlorentG dit avec juste un tout petit script php derrière qui fait envoit un header() différent selon la valeur de pouet :)
 
ESt ce réellement impossible guepe :??:

n°1455963
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-10-2006 à 12:30:26  profilanswer
 

leflos5 a écrit :

CA serait tellement plus simple de faire comme FlorentG dit avec juste un tout petit script php derrière qui fait envoit un header() différent selon la valeur de pouet :)
 
ESt ce réellement impossible guepe :??:


plus simple bof bof!!!Du coup t'es obligé de te servir de cURL pour transmettre des params POST à l'autre serveur... C'est pas forcément simple à faire.
Par contre je suis d'accord que cette solution serait beaucoup beaucoup plus propre!


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

  Plusieurs "submit" dans une meme page ?

 

Sujets relatifs
Utilisation de plusieurs contrôles utilisateurs dans une même pageFaire un formulaire pour laisser des commentaires sur une page web...
Récupérer le résumé d'une page htmlDu JS dans la page appelée avec AJAX
[Resolu] Envoi de plusieurs trames sans attendre l'ACKRegarger une page à partir d'un popup
[ASP]FTP lancé depuis une page ASPcentrer sa page internet
Ouvrir des fenêtres sous plusieurs liens 
Plus de sujets relatifs à : Plusieurs "submit" dans une meme page ?


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