ちくのう症(蓄膿症)は「菌」が原因!?

#1ボタンが押されたらAの処理を、#2ボタンが押されたらBの処理をさせたいので、次のスクリプトを書きましたが、実行すると Notice: Undefined index が出て何も動きません。
1 <HTML><BODY>
2 <input type="submit" name="are" value="#1ボタン" >
3 <input type="submit" name="kore" value="#2ボタン" >
4 <?php
5 $are=isset($_POST["are"])? $_POST["are"] : null;
6 $kore=isset($_POST["kore"])? $_POST["kore"] : null;
7 if($_POST["are"]){ echo ("あれや"."<br />");
8 }
9 if($_POST["kore"]){ echo ("これや"."<br />");
10 }
11 ?>
12 </BODY></HTML>
どのようにして目的の動作をさせれば良いでしょうか?

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/17 18:45

例えば#1ボタンが押下された場合には$_POST["kore"]という


連想添字の値は存在しません。
また、初回アクセス時にはボタンが押されてないわけですから、
当然POSTデータの送信はなく、$_POST["are"]も$_POST["kore"]も存在しません。

にも関わらず、後の比較処理で$_POST["kore"]を利用していることによって、
そんな添字ないよという通知が発生しているわけです。

せっかく$are、$koreに値を代入しているわけですから、
7,9行目の比較でスーパーグローバル変数を利用するのをやめれば良いでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/17 18:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング