1

編集ページで、$ subscribedripsの場合がYesまたはNoに等しい場合、正しいラジオボタンを表示するにはどうすればよいですか?これが私が持っているものと機能していないものです:

 if ($row['subscribedrips'] == Yes) { 
  echo 
  '<input type="radio" name="subscribedrips" value="Yes" CHECKED /> Yes 
  <input type="radio" name="subscribedrips" value="No" /> No';
  }
  elseif ($row['subscribedrips'] == No) {
  echo 
  '<input type="radio" name="subscribedrips" value="Yes" /> Yes 
  <input type="radio" name="subscribedrips" value="No" CHECKED/> No';
  }
  elseif (empty($row['subscribedrips'])) {
  echo 
  '<input type="radio" name="subscribedrips" value="Yes" CHECKED/> Yes 
  <input type="radio" name="subscribedrips" value="No" /> No';
  }
4

4 に答える 4

2

このようなもの

printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", 
    ($subscribedrips == 'Yes' ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",   
    ($subscribedrips == 'No'  ? 'CHECKED' : ''));

動作します。'CHECKED'の値に基づいて、三項演算子を使用して、入力タグに文字列を挿入するか、空の文字列を挿入します$subscribedrips

また、たとえば次のように、より詳細な方法で行うこともできます。

$sel_y = '';
$sel_n = '';
switch($subscribedrips)
{
    case 'Yes':
        $sel_y = 'CHECKED';
        break;
    case 'No':
        $sel_n = 'CHECKED';
        break;
    default:
        // Neither need to be changed, so we dont even need this branch
        break;
}

printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",   $sel_n); 

本当に個人的な好み。


更新されたスニペット1

printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", 
    ((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'Yes') ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",   
    ((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'No')  ? 'CHECKED' : ''));

Snippet2を更新しました

$sel_y = '';
$sel_n = '';
if(array_key_exists('subscribedrips', $row))
{
    switch($row['subscribedrips'])
    {
        case 'Yes':
            $sel_y = 'CHECKED';
            break;
        case 'No':
            $sel_n = 'CHECKED';
            break;
        default:
            // Neither need to be changed, so we dont even need this branch
            break;
    }
}

printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",   $sel_n); 

最後の質問に関して、私たちのアプローチの違いは非常に単純ですが、もう一度(ああ!)そのスタイルの選択は、どちらも同じ目標を達成し、両方のメソッドが「本番」PHPコードで使用されます。

私の例では、入力タグ全体をPHPでビルドし、それを出力します。Valentinasのアプローチは、静的テキストをPHP文字列から引き出し、HTMLに直接配置します。

たとえば、次の行はすべて同じ出力になります。

<?php printf("<strong>%s</strong>", $some_string); ?>

<?php echo "<strong>$some_string</strong>"; ?>

<?php echo "<strong>".$some_string."</strong>"; ?>

<strong><?php echo $some_string; ?></strong>

2つの方法の間に大きなパフォーマンスの違いがあるかどうかは疑わしいですが、強調する1つの外観上の違いがあります。

  • シンタックスハイライト-シンタックスハイライト付きのエディターを使用する場合、valentinasのアプローチにより、シンタックスハイライトでinputタグとその属性を適切にハイライトできます。私のアプローチを使用すると、文字列全体が同じように強調表示されます。 これは、 notepad++が2つの方法をどのように強調しているかを示すスクリーンショットです。

    ご覧のとおり、valentinasのアプローチにより、よりカラフルな表示が得られ、エラーの特定と追跡に役立つ可能性があります。

タグ全体を条件付きで印刷する場合、コードのフォーマット方法に関しては微妙な違いがいくつかありますが、それらについて話す価値はありません。私の意見では、最大のものは構文の強調表示です。

于 2012-06-27T01:42:18.053 に答える
0

値の近くに「」がない可能性がありますか?

if ($subscribedrips == "Yes") {
于 2012-06-27T01:42:45.567 に答える
0

多分このようなもの:

<?php $subscribedrips = $row['subscribedrips']; ?>
<input type="radio" name="subscribedrips" value="Yes" <?php echo ($subscribedrips == 'Yes') ?  "checked" : "" ;  ?>/> Yes 
<input type="radio" name="subscribedrips" value="No" <?php echo ($subscribedrips == 'No') ? "checked" : "" ;  ?>/> No

PHPタグからマークアップを取り除くのが好きです-それをより読みやすくします。

于 2012-06-27T01:59:21.900 に答える
0

上に示したすべてのコードは機能しますが、行が大きいか数が多いように見えます。上記のように使用すると、ラジオボタンの値を表示するためのより良い簡単な方法があります。ページ

追加形式のコード:

<td>Gender</td>
              <td><input type="radio" name="emp_gender" id="emp_gender" value="M" />Male
              <input type="radio" name="emp_gender" id="emp_gender" value="F" />Female</td>

ここで、性別のフィールドを編集する場合は、前に選択した値を持ってくる必要があります

これを行うために私のコードは

<td>Gender</td>
              <td><input type="radio" name="emp_gender" id="emp_gender" value="M" <?php echo ($emp_gender == 'M')? "CHECKED" : " " ?> />Male
              <input type="radio" name="emp_gender" id="emp_gender" value="F" <?php echo ($emp_gender == 'F')? "CHECKED" : " " ?> />Female</td>

上記の太線は、ラジオボタンの値を編集フォームに表示する上で重要です。

于 2013-02-16T05:49:21.957 に答える