test06.html のチェックボックス AとB、どちらにもチェックをいれないと、

Warning: Invalid argument supplied for foreach() in ****:test06.php on line 2
というメッセージが出てきてしまいます。
このメッセージをでなくするには、どうすれば、いいのでしょうか。
お手数ですが、test06.php を書き換えてください。
----test06.html
<html>
<head>
<title>form</title>
</head><body>
<p>お好きなモノをお選びください。</p>
<form name="form1" method="post" action="test06.php">
<INPUT type=checkbox value="A" name=id[] >A<BR>
<INPUT type=checkbox value="B" name=id[] >B<BR>
<input type="submit" name="Submit" value="送信">
</form>
</body>
</html>

---test06.php
<?php
foreach ( $_POST['id'] as $value ) {
echo $value . '<br>';
}
?>

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/10/25 23:34:55
  • 終了:2010/10/26 10:36:35

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982010/10/25 23:50:27

ポイント60pt
<?php
if ($_POST['id'] == "") {
echo 'AかBを選択してね。<br>';
}
else {
foreach ( $_POST['id'] as $value ) {
echo $value . '<br>';
}
}
?> 

入ってないかどうか判断しないとダメですね。

id:kohhi

ありがとうございました。出来ました。

2010/10/26 10:35:52

その他の回答(1件)

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982010/10/25 23:50:27ここでベストアンサー

ポイント60pt
<?php
if ($_POST['id'] == "") {
echo 'AかBを選択してね。<br>';
}
else {
foreach ( $_POST['id'] as $value ) {
echo $value . '<br>';
}
}
?> 

入ってないかどうか判断しないとダメですね。

id:kohhi

ありがとうございました。出来ました。

2010/10/26 10:35:52
id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492010/10/26 07:05:21

ポイント10pt

1つもチェックされていない場合は$_POST['id']が存在しないということになりますのでissetで変数の存在を確認するようにしたほうがよいでしょう

空文字列("")と比較するという手もありますが変数が存在するかどうかすらわからない状態ではエラーとなる場合もあるためphpではissetを使うのが常識です

<?php
if (isset($_POST['id'])) {
    foreach ( $_POST['id'] as $value ) {
        echo $value . '<br>';
    }
} else {
    echo 'AかBを選択してね。<br>';
}

issetの説明は下記参照してください

http://php.net/manual/ja/function.isset.php

変数がセットされており、それが NULL でないことを調べます。

  • id:windofjuly
    うぃんど 2010/10/26 18:43:42
    $_POST['id'] == "" でOKの場合もありますが
    システムを作っていくのであればisset関数で変数が存在するかどうかをチェックするようにしましょう
  • id:kohhi
    >システムを作っていくのであればisset関数で変数が存在するかどうかをチェックするようにしましょう
    やってみます。貴重なアドバイスあるがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません