![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記を表示すると
Warning: Invalid argument supplied for foreach() in
とエラーになってしまい、どうしても原因がわからないのですが・・
よろしくお願い致します
<html>
<body>
<form action="$PHP_SELF" method="post">
<input type="radio" name="q2[]" value="0"<?php foreach ($_POST['q2'] as $q2_sel) { if ( $q2_sel == '0') { echo " selected"; }} ?>>男
<input type="radio" name="q2[]" value="1"<?php foreach ($_POST['q2'] as $q2_sel) { if ( $q2_sel == '1') { echo " selected"; }} ?>>女
</form>
</body>
</html>
No.1ベストアンサー
- 回答日時:
つっこみどころがおおいですね。
まず原因は$_POST['q2'] が配列じゃないからでしょうね。
単純な対策としてはforeachの前にif(is_array($_POST['q2']))を
つけるとよいでしょう。
× foreach($_POST['q2']) as $q2_sel){・・・}
○ if(is_array($_POST['q2'])) foreach($_POST['q2']) as $q2_sel){・・・}
ラジオボタンは排他選択なので配列で返さないほうがよいのでは?
×<input type="radio" name="q2[]" ・・・>
○<input type="radio" name="q2" ・・・>
またご記入のソースでは$PHP_SELFは参照できません
× $PHP_SELF
○ <?=$PHP_SELF?>
とか?もしくはヒアドキュメントなどにする。
それとラジオボタンの値渡しにはselectedではなくchecked
以上を踏まえて私ならこうします
<?PHP
if($_POST['q2']!="") $checked[$_POST['q2']]=" checked";
print <<<eof
<html>
<body>
<form action="$PHP_SELF" method="post">
<input type="radio" name="q2" value="0" {$checked[0]}>男
<input type="radio" name="q2" value="1" {$checked[1]}>女
<input type="submit" value="送信">
</form>
</body>
</html>
eof;
?>
yamabejpさん、いつもお世話になります。
実は、yamabejpさんにも教わった
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1972507
のラジオボタン版の質問でありました。
↑の時は、#2さん(yamabejpさん)の回答どおりに組み込みましたが、
今回は↑の#1さんの方法ではどうかとやってみた次第です。
おっしゃるように、チェックボックスと違って配列にする
必要はぜんぜんなかったですね・・・
いただいた形で活用させていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP ボタンが押されたら処理を...
-
複数チェックボックスの入力制...
-
HTMLのリンクをクリックするこ...
-
PHPの関数実行
-
input nameで日本語を使うと
-
[初歩?]FOREACHの構文エラーの...
-
フォームへの前回入力値をクリ...
-
リストボックス 複数選択のデ...
-
文字列から抜き出す
-
<input type="hidden" >で配列...
-
phpやmysqlで作る簡易掲示板作...
-
syntax error, unexpected '}' ...
-
フォームでのリセットを使う方法
-
現在時刻を反映させた時刻のプ...
-
プルダウンとCSVの連動
-
php ファイルアップロード サ...
-
複数のセレクトボックスを1つに...
-
POSTを使わずに値を渡す方法
-
GETとPOST以外のデータの渡し方...
-
laravelを利用してコントロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
フォームへの前回入力値をクリ...
-
PHPの関数実行
-
ラジオボタンをsessionで使いたい
-
PHPで画像の渡しが上手く行きま...
-
入力フォーム→確認画面→送信画...
-
DBの値をチェックボックスに反...
-
フォームボタンを押すたびに数...
-
セッションにIDを振って値を代入
-
フォームでのリセットを使う方法
-
syntax error, unexpected '}' ...
-
【HTML(PHP?)】複数のフォーム...
-
画面が更新されてもチェックボ...
-
POSTデータのNAME属性をVALUEに...
-
チェックボックスを用い、MySQL...
-
エラーを元の画面に表示させるには
-
チェックボックスを使った複数...
おすすめ情報