HTMLフォームでは、<input>タグのtype属性が「submit」である「プッシュボタン」をクリックすることによって、<form>~</form>で囲まれた範囲に記述された各種のフォーム部品への入力値の指定のPHPファイルなどに送信します。その時、クリックされたプッシュボタン自身の情報も一緒に送信されます。そのボタンのname属性に対応した変数名に、そのvalue属性値が代入されています。
この例では、「btnExec」と「btnCancel」という2つのボタンをフォームに配置しています。「btnExec」のボタンがクリックされた場合、受け取り側では「$_POST["btnExec"]」という変数でその情報を受け取れます。そのボタンがクリックされていれば変数に値が代入されており、クリックされていなければ変数は未定義状態なので、isset()関数で検知できます。複数のボタンのname属性をそれぞれ変えて、各ボタンの状態を順番に調べれば、どのボタンがクリックされたかを判別できます。
ボタンをクリックすると、どちらのボタンをクリックしたかが表示されます。また、次の例のように、「$_POST["btnExec"]」などの変数にはクリックされたボタンのvalue属性の値が代入されています。複数のボタンのname属性をすべて同じにして、受け取り側で変数の内容を比較することで、どのボタンがクリックされたかを判別する方法もあります。
<?php header("Content-type: text/html; charset=utf-8"); if(isset($_POST["btnExec"])){ echo "送信ボタンがクリックされました!<br><br>"; } elseif(isset($_POST["btnCancel"])){ echo "キャンセルボタンがクリックされました!<br><br>"; } ?> <!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> いずれかのボタンをクリックしてください。 <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST"> <input type="submit" name="btnExec" value="送信"> <input type="submit" name="btnCancel" value="キャンセル"> </form> </body> </html>