戻る

クリックされたボタンを調べる

$_POST、$_GET、isset()関数

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>

inserted by FC2 system