Comment puis-je attribuer des actions différentes pour les différents boutons de soumission dans le même formulaire html?
Je suis en train d'attribuer des actions à même de formulaire html en fonction des différents boutons de soumission.
Puis-je faire quelque chose comme cela ?
<FORM>
------
<INPUT type="submit" value="DoSomething" action="DoSomething.pl" method="POST">
<INPUT type="submit" value="DoSomethingElse" action="DoSomethingElse.pl" method="POST">
<FORM/>
OriginalL'auteur Jean | 2010-10-22
Vous devez vous connecter pour publier un commentaire.
Pas. Un formulaire n'a qu'un seul
action
(action
est une propriété de la formulaire, pas le bouton "soumettre").La cible de l'action peut faire des choses différentes sur la base de valeurs dans la forme. Donc, vous pourriez commencer à appeler vos boutons de soumission.
Apprendre le HTML avant même de penser à l'écriture et le déploiement d'un script CGI.
Note également que le choix d'une action fondée sur la valeur du bouton submit est une stratégie perdante si vous souhaitez internationaliser l'application car la
value
d'un bouton de soumission est ce que l'UA s'affiche à l'homme.Par conséquent,
script
doit décider quoi faire sur la base de certains autres de l'élément d'entrée de la valeur.Par exemple, CGI::Application ressemble à un
run_mode
paramètre.Alternativement, vous pouvez utiliser des noms différents pour vos boutons submit, comme Alec suggère. Dans ce cas, vous devez vérifier les soumettre bouton a été pressé en passant par les noms des paramètres passés au script qui, à mon humble avis, rend l'expédition un peu plus lourd. Cela signifie également qu'il est possible pour quelqu'un de transmettre des valeurs pour tous les boutons de soumission de votre script (pas via l'interface utilisateur, mais par le biais d'
curl
ouwget
ou des programmes similaires.Par exemple, étant donné le HTML
ici est de savoir comment votre script peut gérer la soumission du formulaire:
cela dépend du script. Les boutons de soumission ont des valeurs différentes, de sorte que le script peut dire que l'on a cliqué, et faire quelque chose de différent sur cette base.
Il est généralement plus facile d'utiliser le
name
attribut de différencier entre les différentes actions. E. g.<input type="submit" name="action_left" value="Go left!" />
et<input type="submit" name="action_right" value="Go right!" />
. De cette façon, vous pouvez faire correspondre action simplifiée noms à la place des textes actuels. C'est aussi le seul moyen lorsque vous travaillez avec des sites multilingues, étant donné que la valeur ne sera jamais la même.OriginalL'auteur Sinan Ünür
Juste au cas où quelqu'un d'autre trouve ce post:
Si vous êtes en utilisant HTML5, c'est maintenant plus facile grâce à la
formaction
attribut. Cet attribut s'applique àinput
etbutton
éléments detype="submit"
et les forces de la forme de soumettre à l'emplacement spécifié dans leformaction
attribut de l'élément cliqué.Alors seul inconvénient de cet attribut, c'est qu'il n'est pas pris en charge par Internet Explorer 9 et plus bas, mais cette limitation peut être facilement surmontés à l'aide d'un peu de JavaScript.
Exemple:
Pour IE 9 et inférieur:
OriginalL'auteur Meryovi
Vous pouvez également utiliser Ajax pour cela, et chaque bouton a assigné une fonction ajax qui appelle son propre script php et vous n'avez même pas besoin de rafraîchir la page ou de redirection, comme dans cet exemple que j'ai essayé:
Des fonctions Javascript:
//la première fonction
//prendre les valeurs de l'html des éléments d'entrée que vous souhaitez utiliser
//le script qui va traiter les données
//la variable qui contiendra les informations pour le script php
//Accéder à l'événement onreadystatechange de l'objet XMLHttpRequest
//Envoyer les données php_script1.php
//la deuxième fonction
Les fichiers php devra contenir certaines variables qui contiendront les valeurs envoyées par dataVar paramètre comme ceci:
L'exemple que j'ai utilisé peut être trouvé ici:
https://www.youtube.com/watch?v=woNQ2MA_0XU.
OriginalL'auteur the_butterfly_effect