2016-03-23 9 views
1

これを行うには、より良い方法がありますか?私は、データベースフィールドから取得したデータに基づいてラジオボタンをチェックしようとしていますか?PHPとラジオボタン

<?php 

      $ck2 = $objResult["MOV"]; 

      if ($ck2 == "Y") { 

      echo "<input id='x1' type='radio' name='movie' value='Y' checked='checked'><label for=''x1'>Yes</label>"; 
      echo "</div>"; 
      echo "<div>"; 
      echo "<input id='x2' type='radio' name='movie' value='N'><label for=''x2'>No</label>"; 

      } elseif ($ck2 == "N") { 

      echo "<input id='x1' type='radio' name='movie' value='Y'><label for=''x1'>Yes</label>"; 
      echo "</div>"; 
      echo "<div>"; 
      echo "<input id='x2' type='radio' name='movie' value='N' checked='checked'><label for=''x2'>No</label>"; 

      } else { 

      echo "<input id='x1' type='radio' name='movie' value='Y'><label for=''x1'>Yes</label>"; 
      echo "</div>"; 
      echo "<div>"; 
      echo "<input id='x2' type='radio' name='movie' value='N'><label for=''x2'>No</label>"; 

      } 

      ?> 

答えて

0
$ck2 = $objResult["MOV"]; 
$checked_y = ($ck2 == "Y") ? "checked=\"checked\"" : ""; 
$checked_n = ($ck2 == "N") ? "checked=\"checked\"" : ""; 

echo "<input id='x1' type='radio' name='movie' value='Y' {$checked_y} /><label for=''x1'>Yes</label>"; 
echo "</div>"; 
echo "<div>"; 
echo "<input id='x2' type='radio' name='movie' value='N' {$checked_n} /><label for=''x2'>No</label>"; 
0

はい。それは、結果セットではないので$objResult["MOV"]がnullの場合

<?php 

    echo '<input id="x1" type="radio" name="movie" value="Y"' . ($ck2 == 'Y' ? ' checked="checked"' : '') . '><label for="x1">Yes</label>'; 
    echo '<input id="x2" type="radio" name="movie" value="N"' . ($ck2 == 'N' ? ' checked="checked"' : '') . '><label for="x2">No</label>'; 

、ラジオボタンが表示されていない、どちらもチェックされます。それがnullの場合、

<?php 
    $ck2 = !empty($objResult["MOV"]) ? $objResult["MOV"] : 'N'; 

、「いいえ」チェックボックスが選択されます。それがnullの場合、あなたがそれらのいずれかが選択されるようにしたい場合は代わりに、あなたはこのような何かを行うことができます。すべて一緒に

、それは次のようになります。

<?php 

    $ck2 = !empty($objResult["MOV"]) ? $objResult["MOV"] : 'N'; 

    echo '<input id="x1" type="radio" name="movie" value="Y"' . ($ck2 == 'Y' ? ' checked="checked"' : '') . '><label for="x1">Yes</label>'; 
    echo '<input id="x2" type="radio" name="movie" value="N"' . ($ck2 == 'N' ? ' checked="checked"' : '') . '><label for="x2">No</label>'; 

機能を(他の人が示唆したように)としてうまく機能ラジオボタンを表示します。テンプレートエンジンを使用すると、その必要性が置き換えられるため、ternary operatorPHP Doc)を習得することで同様の効果が得られます。

+0

dbフィールドがnullの場合、これは機能しますか? – Ronald

+0

はい。フィールドがnullの場合、ラジオボタンは表示されますが、選択されていません。それを処理する別の方法については私の編集を参照してください。 – Davis

0
<?php 

$ck2 = $objResult["MOV"]; 

echo "<input id='x1' type='radio' name='movie' value='Y'". ($ck2 == "Y" ? " checked='checked'" : "") ."><label for=''x1'>Yes</label>"; 
echo "</div>"; 
echo "<div>"; 
echo "<input id='x2' type='radio' name='movie' value='N'". ($ck2 == "N" ? " checked='checked'" : "") ."><label for=''x2'>No</label>"; 

?> 

詳細:https://davidwalsh.name/php-ternary-examples

+0

dbフィールドがnullの場合、これは機能しますか? – Ronald

0

速く、あまりにも同じこと、少し異なるアプローチと:

<?php 
$ck2 = $objResult["MOV"]; 
$ycheck= ""; 
$ncheck= ""; 
switch($ck2) 
{ 
    case("Y"): 
    { 
     $ycheck= " checked='checked'"; 
     break; 
    } 
    case("N"): 
    { 
     $ncheck= " checked='checked'"; 
     break; 
    } 
    default: 
    { 
     break; 
    } 
} 
?> 
<input id='x1' type='radio' name='movie' value='Y'<?php echo $ycheck; ?>><label for=''x1'>Yes</label></div><div><input id='x2' type='radio' name='movie' value='N'<?php echo $ncheck; ?>><label for=''x2'>No</label> 
0
 <?php 

      $ck2 = $objResult["MOV"]; 
      $isYes = ($ck2["MOV"] == "Y"); 
      $isNo = ($ck2["MOV"] == "N"); 

     ?> 

     <input id="x1" type="radio" name="movie" value="Y" <? php if($isYes) echo "checked='checked'"; ?>><label for=''x1'>Yes</label> 
     </div> 
     <div> 
     <input id="x2" type="radio" name="movie" value="N"<? php if($isNo) echo "checked='checked'"; ?>><label for=''x2'>No</label> 
0

それが入力を生成する機能を使用することをお勧めします:

<?php 
function radio_input($checked, $id) 
{ 
    $checked_str = $checked ? " checked='checked' " : "" ; 
    $label_str = $checked ? "Yes" : "No"; 
    $value_str = $checked ? "Y" : "N"; 
    return "<input id='$id' type='radio' name='movie' $checked_str value='$value_str'><label for='$id'>$label_str</label>"; 
} 

$ck2 = $objResult["MOV"]; 

echo radio_input($ck2 == "Y","x1"); 
echo "</div>"; 
echo "<div>"; 
echo radio_input($ck2 == "Y","x2"); 
?> 
関連する問題