人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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>';
}
?>

●質問者: kohhi
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as ECHO HTML ON PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●60ポイント ベストアンサー
<?php
if ($_POST['id'] == "") {
echo 'AかBを選択してね。<br>';
}
else {
foreach ( $_POST['id'] as $value ) {
echo $value . '<br>';
}
}
?> 

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

◎質問者からの返答

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


2 ● うぃんど
●10ポイント

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 でないことを調べます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ