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>';
}
?>
<?php if ($_POST['id'] == "") { echo 'AかBを選択してね。<br>'; } else { foreach ( $_POST['id'] as $value ) { echo $value . '<br>'; } } ?>
入ってないかどうか判断しないとダメですね。
<?php if ($_POST['id'] == "") { echo 'AかBを選択してね。<br>'; } else { foreach ( $_POST['id'] as $value ) { echo $value . '<br>'; } } ?>
入ってないかどうか判断しないとダメですね。
ありがとうございました。出来ました。
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 でないことを調べます。
ありがとうございました。出来ました。