• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:#1ボタンと#2ボタンで分岐処理をしたい。)

PHPでのボタン分岐処理について

このQ&Aのポイント
  • #1ボタンが押されたらAの処理を、#2ボタンが押されたらBの処理を行いたいが、Notice: Undefined indexが出て動作しない。
  • HTMLの<input>タグでボタンを作成し、PHPの$_POST変数を使用してボタンが押されたことを判定して処理を分岐させる。
  • isset関数を使ってボタンが押されたかどうかを確認し、分岐処理を行う。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

formも設定してね <HTML><BODY> <form method="post"> <p> <input type="submit" name="are" value="#1ボタン" > <input type="submit" name="kore" value="#2ボタン" > </p> </form> <?php error_reporting(E_ALL); $are=isset($_REQUEST["are"])? $_REQUEST["are"] : null; $kore=isset($_REQUEST["kore"])? $_REQUEST["kore"] : null; if($are) echo ("あれや<br />"); if($kore) echo ("これや<br />"); ?> </BODY></HTML>

spindle
質問者

お礼

ありがとうございます。  > formも設定してね これですか、なるほど!  良く分かりました。

その他の回答 (1)

回答No.1

例えば#1ボタンが押下された場合には$_POST["kore"]という 連想添字の値は存在しません。 また、初回アクセス時にはボタンが押されてないわけですから、 当然POSTデータの送信はなく、$_POST["are"]も$_POST["kore"]も存在しません。 にも関わらず、後の比較処理で$_POST["kore"]を利用していることによって、 そんな添字ないよという通知が発生しているわけです。 せっかく$are、$koreに値を代入しているわけですから、 7,9行目の比較でスーパーグローバル変数を利用するのをやめれば良いでしょう。

spindle
質問者

お礼

丁寧に教えて頂きありがとうございます。 なるほど、なるほど、です。