2013-05-21 2 views
53

私は私は2つの「アクション」(2ボタン)を必要とする請求項形式を設定してい:HTMLフォーム

1から
2「を承認のためにこのフォームを送信」 - 「このアプリケーションを保存後で "

複数の"アクション "をサポートするHTMLフォームを作成するにはどうすればよいですか?

EG:

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

私は、これら二つのオプション-用-提出一つの形にを結合する必要があります。

私はいくつかの基本的な研究を行ったが、これが可能かどうか、あるいは回避策としてリンクするための良いリソースを見つけることができなかった。

ありがとうございます。

+0

私はちょうど1つのフォームアクションに投稿し、フォームの投稿データを見てどのボタンがクリックされたかを知ることができます。私はあなたが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 
} 

EDIT


あなたではなくあなたのPHPの設定を変更しないだろうと、この試してみてください。これは http://pastebin.com/j0GUF7MV
をJavaSc @AliKはこれに頼っていました。

関連:

+0

ちょっと、目が覚めて、あなたの+ AliKの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> 

このような構造を持つ必要になります方向と無限の可能性を入力して送信するr残りのボタン。