一回も披露したことのない豆知識

DBに登録してあるデータをもとに、該当するチェックボックスに、画面表示時にチェックを入れるプログラムを作成しています。

DBからのデータは $info という配列の中の9番目に 男性であれば「0」,女性であれば「1」という数字が入っており、 $info[9]に実際に値が入っているところまでは確認できました。

これをもとに以下のようにコーディングを行ったのですが、ラジオボタンのみ空欄のままになっています。(他のテキストデータはうまく表示されています。)

原因と、解決策がわかるかたがいらっしゃいましたらご教授ください。
※プログラミングは初心者です。

よろしくお願いたします。

----------------
<?php

switch($info[9]){
case 0:
$checked0 = 'checked';
break;
case 1:
$checked1 = 'checked';
}
?>

■body内

<dt>性別:</dt>

<input type="hidden" name="seibetsu" value="$info[9]">
<input name="radiobutton" type="radio" value=0 "$checked0"/ >男性
<input name="radiobutton" type="radio" value=1 "$checked1"/>女性

--------------------------

A 回答 (2件)

ページのソースをみればわかると思いますが


checkedをクォーテーションでくくる必要がないのでは?

また、データのやり取りをするときにあまり「0」を使うのは
よくないですね。
1以上の整数を使うことをおすすめします。

この回答への補足

ご回答、ありがとうございました。

クォーテーションをとり、再度実行してみましたがやはり値は反映されておりません・・・。
何か他にも原因は思い当たりますでしょうか?


1以上の数値を使用した方がよいとは知りませんでした。今回の問題が解決しましたら受け渡しの数値も違うものにしようと思います。

※おわかりかと推測していますが、質問時「チェックボックス」と書いてしまいましたが、「ラジオボタン」の間違いでした。申し訳ありません。

補足日時:2012/02/09 19:32
    • good
    • 0

もしかして、きちんと出力系の処理をしていないのでは?


これで試してみてください


<?php
$info[9]=1;
switch($info[9]){
case 0:
$checked0 = ' checked';
break;
case 1:
$checked1 = ' checked';
}

print<<<eof
<dt>性別:</dt>

<input type="hidden" name="seibetsu" value="{$info[9]}">
<input name="radiobutton" type="radio" value="0"{$checked0} / >男性
<input name="radiobutton" type="radio" value="1"{$checked1} />女性
eof;
?>

この回答への補足

おっしゃるとおり、出力系の処理ができていなかったことが原因だったようで、上記コードで試しましたらうまくいきました。

ただ一点、2行目の「$info[9]=1;」を記述していると、常にラジオボタンが「男性」のままで女性のときも変わりませんでした。よって、この1行をコメントアウトしましたら、データによってラジオボタンの表示の値が変化しました。

現状、正常に動いているので大丈夫なのではないかと思っていますが、念のため補足させていただきました。もし問題があるようでしたらご返信いただければ幸いです。

ここ2,3日ずっと悪戦苦闘していたので、本当に助かりました。

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

補足日時:2012/02/09 20:27
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報