2

ページビルダーを作成していますが、選択ボックスにはほとんど問題がありません。

これは、jQueryを介して選択ボックスを作成する方法です

    var item_opts = '<select>'
        + '<option value="red">Red</option>'
        + '<option value="green">Green</option>'
        + '<option value="blue">Blue</option>'
        + '<option value="yellow">Yellow</option>'
    + '</select>'

$('.items_options').append(item_opts);

そして、これは私がPHPでそれを呼び出す方法です

<select>
  <?php if ( $pb_item['message_color'] == "red" ) { ?>
    <option selected="selected" value="red">Red</option>
    <option value="green">Green</option>
    <option value="blue">Blue</option>
    <option value="yellow">Yellow</option>
  <?php } elseif ( $pb_item['message_color'] == "green" ) { ?>
    <option value="red">Red</option>
    <option selected="selected" value="green">Green</option>
    <option value="blue">Blue</option>
    <option value="yellow">Yellow</option>
  <?php } elseif ( $pb_item['message_color'] == "blue" ) { ?>
    <option value="red">Red</option>
    <option value="green">Green</option>
    <option selected="selected" value="blue">Blue</option>
    <option value="yellow">Yellow</option>
  <?php } else { ?>
    <option value="red">Red</option>
    <option value="green">Green</option>
    <option value="blue">Blue</option>
    <option selected="selected" value="yellow">Yellow</option>
  <?php } ?>                      
</select> 

私が持っているよりも、選択されたオプションに「選択された」パラメータを追加する方法のより良い解決策はありますか?

あなたの時間とあなたのアドバイスのためのthx :)

4

2 に答える 2

4

はい、より良い解決策があります

<select>
    <option <? ($pb_item['message_color'] == 'red'?'selected="selected"') ?> value="red">Red</option>
    <option <? ($pb_item['message_color'] == 'green'?'selected="selected"') ?> value="green">Green</option>
    <option <? ($pb_item['message_color'] == 'blue'?'selected="selected"') ?> value="blue">Blue</option>
    <option <? ($pb_item['message_color'] == 'yellow'?'selected="selected"') ?> value="yellow">Yellow</option>                   
</select>

たとえば、forループを介してオプションを一覧表示できる場合でも、次のようになります。

$colors = array('blue', 'red', ..);
foreach($colors as $color) {
    echo "<option ".($pb_item['message_color'] == $color?'selected="selected"')."value='$color'>" . ucwords($color) . "</option>";
}
于 2013-01-06T16:10:57.273 に答える