データベースから取得した値によってradioボタンをcheckedにする方法を教えてください。

$shift にはMYSQLから取得した0か1が入っています。
以下の方法ではできませんでした。

<?php
(略)
<td><input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 if($shift == 0){ print "checked";} />
<input type="radio" name="shift" value=1 if($shift == 1){ print "checked";} />
(略)
?>

または

<?php
(略)
<td><input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 <?php if($shift == 0){ print "checked";}?> >
<input type="radio" name="shift" value=1 <?php if($shift == 1){ print "checked";}?> >
(略)
?>

よろしくお願いします。

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2011/02/15 16:14:37
  • 終了:2011/02/20 22:21:00

ベストアンサー

id:Cherenkov No.2

Cherenkov回答回数1503ベストアンサー獲得回数4932011/02/15 17:48:33

ポイント70pt

略さずに最小限でお願いしたい。

<?php
$shift = 0;

$checked0 = ($shift) ? "" : "checked";
$checked1 = ($shift) ? "checked" : "";


echo <<< EOT
<html><body>
<input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 $checked0 />
<input type="radio" name="shift" value=1 $checked1 />
</body></html>
EOT;
?>
id:ikazuo

ありがとうございます。すいません、説明不足でした。

以下のようにして解決できました。

<?php

switch($shift){
case 0:
        $checked0 = 'checked';
        break;
case 1:
        $checked1 = 'checked';
}


echo <<< EOT
<html><body>
<input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 "$checked0" />
<input type="radio" name="shift" value=1 "$checked1" />
</body></html>
EOT;
?>
2011/02/15 18:35:32

その他の回答(1件)

id:asuka645 No.1

あすか回答回数856ベストアンサー獲得回数972011/02/15 16:30:41

以下のようにしてみて下さい。


id:Cherenkov No.2

Cherenkov回答回数1503ベストアンサー獲得回数4932011/02/15 17:48:33ここでベストアンサー

ポイント70pt

略さずに最小限でお願いしたい。

<?php
$shift = 0;

$checked0 = ($shift) ? "" : "checked";
$checked1 = ($shift) ? "checked" : "";


echo <<< EOT
<html><body>
<input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 $checked0 />
<input type="radio" name="shift" value=1 $checked1 />
</body></html>
EOT;
?>
id:ikazuo

ありがとうございます。すいません、説明不足でした。

以下のようにして解決できました。

<?php

switch($shift){
case 0:
        $checked0 = 'checked';
        break;
case 1:
        $checked1 = 'checked';
}


echo <<< EOT
<html><body>
<input type="hidden" name="cur_shift" value="$shift">
<input type="radio" name="shift" value=0 "$checked0" />
<input type="radio" name="shift" value=1 "$checked1" />
</body></html>
EOT;
?>
2011/02/15 18:35:32
  • id:windofjuly
    うぃんど 2011/02/15 20:35:18
    switch($shift){
    case 0:
      $checked0 = 'checked';
      break;
    case 1:
      $checked1 = 'checked';
    }
    case0の場合には$checked1が存在しないということになり、
    case1の場合には$checked0が存在しないということになりますよね?
     
    phpの場合は変数が存在せずともnullとして扱ってくれるためエラーに気づきにくく、
    Cherenkov さんの回答のように「存在しないということが無い」状態にしておくほうが良いですよ
     
    ラジオボタンが2つだけではなく沢山存在するためにswitchを使ったのだとは思いますが、
    その場合には配列を利用してデフォルトを空白にするなどすれば少し楽になります
  • id:ikazuo
    windofjulyさま

    コメントありがとうございます。
    配列を利用する方法とは違いますが、以下のようにしてみました。

    $checked0 = ($shift == 0) ? "checked" : "";
    $checked1 = ($shift == 1) ? "checked" : "";

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

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

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

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