2013-05-21 29 views
53

我設置了一個表格,其中我需要兩個「動作」(兩個按鈕):HTML表單有多個「動作」

1 - 「提交此表審批」
2 - 「保存此應用程序稍後「

如何創建支持多個」操作「的HTML表單?

EG:

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

我需要這兩個選項換提交合併成一種形式。

我做了一些基礎研究,但找不到一個明確的答案,這是否可能,和/或任何良好的資源鏈接的解決方法。

在此先感謝。

+0

不是一個PHP的傢伙,但在.NET中,我可以發佈到一個表單操作,並通過查看錶單發佈數據來找出哪個按鈕被點擊。我假設你可以在php中做同樣的事情。或者,您只需使用JavaScript更改提交的目標。 – AliK

回答

61

正如@AliK提到的,通過查看提交按鈕的值可以輕鬆完成此操作。

當您提交表單時,未設置的變量將評估爲false。如果您將兩個提交按鈕都設置爲同一表單的一部分,則可以檢查並查看已設置了哪個按鈕。

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 
} 

編輯


如果你不想改變你的PHP安裝,試試這個: http://pastebin.com/j0GUF7MV
這是JavaSc @AliK的破解方法正在接受。

相關:

+0

嘿,我現在醒了,你的+阿里克的JavaScript的答案似乎完美的我,謝謝你! –

14

的最佳方式(對我來說),使其它的未來的基礎設施:

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

這種結構,你會發送一個方向和無限的可能性其餘的按鈕。