複数ボタンの入力テスト(サンプル)
ページにいっぱいボタンが配置されている時に
「どのボタンが押されたのか?」を判別するサンプルプログラムです





forやwhileで複数のボタンを設置した時の判別

設置したボタンが2つとか3つとかの場合は

if(isset($_POST['submit1'])){
	ボタンを押したときの処理;
}
if(isset($_POST['submit2'])){
	ボタン2を押したときの処理;
}
なんて書いたらいいけど・・・・・

「ボタンがいっぱいあってそんなのいちいち書いてられない!!」
っていう人がきっとこのページを訪れるんだと思う

PHPでどのボタンが押されたかを判別する方法は
色々あるんですが、下の書き方が簡単かな?
ふつうは、value=には、データベースからの戻り値なんかが入るかな?

key関数で押されたボタンを判別
1つのページでボタンを複数設置した場合
(forやwhile文で複数設置したボタンを判別する)
<meta charset="UTF-8"> //ボタンテスト <?php $mes = array('りんご','オレンジ','メロン','パイナップル'); $idname = array('ID1','ID2','ID3','ID4'); if(isset($_POST['submit'])){ $button = key($_POST['submit']); //$buttonには押された番号が入る $newmes = $_POST['test'][$button]; $newid = $_POST['hidden'][$button]; echo '入力されたのは'.$newmes.'<br />'; echo 'hidden属性は'.$newid; } //フォーム部分 echo '<form method="post" action="">'; $i=0; while($i<4){ echo '<input type="text" name="test['.$i.']" value="'.$mes[$i].'">'. '<input type="hidden" name="hidden['.$i.']" value="'.$idname[$i].'">'. '<input type="submit" name="submit['.$i.']" value="ボタン"><br />'; $i++; } echo '</form>'; ?>

忘れやすいのでメモ(補足説明)

PHPでfor文などで1つのページに複数ボタンを設置した場合のボタンの判別

  • input typeのボタンやテキストのname部分を配列にしとく
  • if($_POST['submit'])の時、key関数を使ってどのボタンが押されたかを判別
  • 配列を使って取り出す
  • 後はお好きなように・・・
  • ちなみにセキュリティーは考慮されてません(エスケープして下さい)

Ads by Sitemix