web-dev-qa-db-fra.com

Formulaire HTML avec plusieurs "actions"

Je crée un formulaire dans lequel j'ai besoin de deux "actions" (deux boutons):

1 - "Soumettez ce formulaire pour approbation"
2 - "Enregistrer cette application pour plus tard"

Comment créer un formulaire HTML prenant en charge plusieurs "actions"?

PAR EXEMPLE:

<form class="form-horizontal" action="submit_for_approval.php">
<form class="form-horizontal" action="save_for_later.php">

Je dois combiner ces deux options de soumission en un seul formulaire.

J'ai fait des recherches de base, mais je n'ai pas trouvé de réponse définitive quant à savoir si cela est possible ou non, et/ou de bonnes ressources en liens pour une solution de contournement.

Merci d'avance.

59
Samuel Stiles

Comme @AliK l'a mentionné, cela peut être facilement réalisé en examinant la valeur des boutons de soumission.

Lorsque vous soumettez un formulaire, les variables non définies seront évaluées comme étant fausses. Si vous définissez les deux boutons d'envoi pour qu'ils fassent partie du même formulaire, vous pouvez simplement vérifier et voir quel bouton a été défini.

HTML:

 <form action = "handle_user.php" method = "POST" />
 <input type = "submit" value = "Save" name = "save" />
 <input type = "submit" value = "Soumettre pour approbation" name = "approuver" />
</form>

PHP

 if ($ _ POST ["save"]) {
 // L'utilisateur a cliqué sur le bouton de sauvegarde, manipulé en conséquence 
} 
 // Vous pouvez faire autre chose, mais je préfère une instruction distincte 
 If ($ _ POST ["approuver"]) {
 // L'utilisateur a cliqué sur le bouton Soumettre pour approbation, le gérer en conséquence 
} 

MODIFIER


Si vous préférez ne pas modifier votre configuration de PHP, essayez ceci: http://Pastebin.com/j0GUF7MV
C’est la méthode JavaScript décrite par @AliK.

En relation:

68
isaacparrot

le meilleur moyen (pour moi) d'en faire la prochaine infrastructure: 

<form method="POST">
<input type="submit" formaction="default_url_when_press_enter" style="visibility: hidden; display: none;">
<!-- all your inputs -->
<input><input><input>
<!-- all your inputs -->
<button formaction="action1">Action1</button>
<button formaction="action2">Action2</button>
<input type="submit" value="Default Action">
</form>

avec cette structure vous allez envoyer avec entrer une direction et des possibilités infinies pour le reste des boutons. 

cette forme vraiment travaillée car je prépare une table avec de la thymeleaf et à l'intérieur de la table, il y a deux boutons en une forme ... merci, même ce fil est vieux, il m'aide encore beaucoup!

<th:block th:each="infos : ${infos}">
<tr>
<form method="POST">
<td><input class="admin" type="text" name="firstName" id="firstName" th:value="${infos.firstName}"/></td>
<td><input class="admin" type="text" name="lastName" id="lastName" th:value="${infos.lastName}"/></td>
<td><input class="admin" type="email" name="email" id="email" th:value="${infos.email}"/></td>
<td><input class="admin" type="text" name="passWord" id="passWord" th:value="${infos.passWord}"/></td>
<td><input class="admin" type="date" name="birthDate" id="birthDate" th:value="${infos.birthDate}"/></td>
<td>
<select class="admin" name="gender" id="gender">
<option><label th:text="${infos.gender}"></label></option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</td>
<td><select class="admin" name="status" id="status">
<option><label th:text="${infos.status}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</td>
<td><select class="admin" name="ustatus" id="ustatus">
<option><label th:text="${infos.ustatus}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</td>
<td><select class="admin" name="type" id="type">
<option><label th:text="${infos.type}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select></td>
<td><input class="register" id="mobileNumber" type="text" th:value="${infos.mobileNumber}" name="mobileNumber" onkeypress="return isNumberKey(event)" maxlength="11"/></td>
<td><input class="table" type="submit" id="submit" name="submit" value="Upd" Style="color: white; background-color:navy; border-color: black;" th:formaction="@{/updates}"/></td>
<td><input class="table" type="submit" id="submit" name="submit" value="Del" Style="color: white; background-color:navy; border-color: black;" th:formaction="@{/delete}"/></td>
</form>
</tr>
</th:block>

0
Rj Acain