Aller au contenu

2 actions différentes pour un même formulaire


siriu

Sujets conseillés

Bonjour,

Je souhaiterai que dans un formulaire, l'utilisateur puisse avoir le choix entre deux boutons pour effectuer une action ou une autre.

J'ai essayé le code suivant et ça marche pas, pouvez vous m'aider ?


<input type="Button" onclick="window.document.form.action="toto.php";window.document.form.submit();" value="action1">
<input type="Button" onclick="window.document.form.action="titi.php";window.document.form.submit();" value="action2">

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Il y a pas mal de façons de résoudre ce problème. En voici une qui n'utilise pas de javascript.

Le principe est de définir un seul champ "action" et deux boutons "submit :

<input type="hidden" name="action" value="test" />
<input type="submit" name="submit" value="Action 1" />
<input type="submit" name="submit" value="Action 2" />

Ensuite pour le traitement du formulaire, le champ action te permet de savoir que le formulaire a été soumis, et un test sur $_REQUEST['submit'] te permet de savoir lequel des deux boutons 'submit' a été cliqué.

L'inconvénient, c'est que du coup, si tu modifies la valeur d'un des boutons submit, ben ça ne marche plus (ou alors il faut aussi modifier la partie traitement). Donc c'est assez moyen. Mais dans des cas simples ça peut servir.

Sinon tu peux effectivement récupérer quel bouton a été cliqué avec javascript.

Lien vers le commentaire
Partager sur d’autres sites

L'inconvénient, c'est que du coup, si tu modifies la valeur d'un des boutons submit, ben ça ne marche plus (ou alors il faut aussi modifier la partie traitement). Donc c'est assez moyen. Mais dans des cas simples ça peut servir.

Ta solution est plus que correcte, pour le souci que tu évoques, le mieux est alors de modifier l'attribut name du bouton de soumission et non sa valeur.

Pour contre siriu, le mieux est quand même de traiter ce formulaire dans le même fichier pour des raisons évidentes de relecture :


<input type="submit" name="Ajouter" value="Action 1" />
<input type="submit" name="Supprimer" value="Action 2" /> <!-- cette marque de lessive n'existe plus je crois-->

Donne un truc du genre :


if(isset($_POST['Ajouter']))
{
//...
}
else if(isset($_POST['Supprimer']))
{
//...
}

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...