2013-05-21 14 views
53

Sono la creazione di una forma in cui ho bisogno di due "azioni" (due pulsanti):HTML con più "azioni"

1 - "Invia il presente modulo per l'approvazione"
2 - "Salva l'applicazione per dopo "

Come si crea un modulo HTML che supporta più" azioni "?

EG:

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

Ho bisogno di combinare queste due opzioni-per-la presentazione in un unico modulo.

Ho effettuato alcune ricerche di base ma non sono riuscito a trovare una risposta definitiva sul fatto che sia possibile o meno e/o sulle risorse valide per i collegamenti per una soluzione alternativa.

Grazie in anticipo.

+0

Non è un utente php ma in .NET posso solo pubblicare un'azione in un modulo e solo scoprire quale pulsante è stato cliccato guardando i dati del modulo. Presumo che potresti essere in grado di fare lo stesso in PHP. In alternativa dovresti semplicemente usare javascript per cambiare il target del submit. – AliK

risposta

61

Come @AliK menzionato, questo può essere fatto facilmente osservando il valore dei pulsanti di invio.

Quando si invia un modulo, le variabili non impostate verranno valutate false. Se si impostano entrambi i pulsanti di invio come parte dello stesso modulo, è sufficiente controllare e vedere quale pulsante è stato impostato.

HTML:

 
<form action="handle_user.php" method="POST" /> 
    <input type="submit" value="Save" name="save" /> 
    <input type="submit" value="Submit for Approval" name="approve" /> 
</form> 

PHP

 
if($_POST["save"]) { 
    //User hit the save button, handle accordingly 
} 
//You can do an else, but I prefer a separate statement 
if($_POST["approve"]) { 
    //User hit the Submit for Approval button, handle accordingly 
} 

EDIT


Se si preferisce non modificare la configurazione di PHP, provate questo: http://pastebin.com/j0GUF7MV
Questo è il JavaSc metodo di ript @AliK stava facendo riferimento a.

correlati:

+0

Ehi, sono sveglio ora e la tua risposta JavaScript + di AliK sembra perfetta per me, grazie !! –

14

il modo migliore (per me) per renderlo sia l'infrastruttura successivo:

<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> 

con questa struttura si vuole invia con enter una direzione e le infinite possibilità per r il resto dei pulsanti.