0

phpで生成されたドロップダウンがあります。

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
                    <? foreach($diplomas->result_array() as $diploma) {
          echo "<option    value=".$diploma['id'].">".$diploma['name']."</option>";
                            } ?>
</select>

<? echo $edu['diploma']; ?>データベースからの値もあります。selected="selected"この値に一致するドロップダウンのオプションに追加したいと思います。jqueryを使用する必要がありますか?これを行うための最良の方法は何ですか?

4

5 に答える 5

1

次のようにループ内を確認できます。

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? 
    foreach($diplomas->result_array() as $diploma) 
        {
            if($edu['diploma']==$diploma['name'])
            {
                echo "<option selected ='selected' value=".$diploma['id'].">".$diploma['name']."</option>";
            }
            else
            {
                echo "<option value=".$diploma['id'].">".$diploma['name']."</option>";
            }
        } 
    ?>
</select>

または、コードを短くするには:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? 
    foreach($diplomas->result_array() as $diploma) 
        {
            $selected = ($edu['diploma']==$diploma['name']) ? " selected='selected' " : "" ;
            echo "<option $selected value=".$diploma['id'].">".$diploma['name']."</option>";
        } 
    ?>
</select>
于 2012-09-08T13:07:30.187 に答える
1

同じPHPコードを使用します。

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? foreach($diplomas->result_array() as $diploma) {
        echo "<option value=".$diploma['id'];
        if ($edu['diploma'] == $diploma['name']) {
            echo 'selected="selected"';
        }
        echo ">".$diploma['name']."</option>";
    } ?>
</select>

コードは各オプションの変数と比較$diploma['name']され、同じ場合は出力されます。$edu['diploma']selected="selected"

内容に応じて、$edu['diploma']何かと比較する必要があります。への変更が$edu['diploma']含まれている場合。id$diploma['name']$diploma['id']

卒業証書オブジェクト自体が含まれている場合$edu['diploma']は、次のように比較する必要があります。$edu['diploma']['id'] == $diploma['id']

于 2012-09-08T13:09:11.190 に答える
1

それが私が思いついたものです:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <?php foreach ($diplomas->result_array() as $diploma) {
    //echo "<option value='{$diploma['id']}'>{$diploma['name']}</option>";
    echo "<option value='{$diploma['id']}";
    if ($edu['diploma'] === $diploma['name']) {
        echo " selected";
    }
    echo ">{$diploma['name']}</option>\n";
} ?>
</select>
于 2012-09-08T13:09:37.240 に答える
0
<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
   <?php foreach($diplomas->result_array() as $diploma) {
      $selected = $diploma['id'] == $edu['diploma'] ? ' selected="selected"' : ''; 
      echo '<option value="' . $diploma['id'] . '"' . $selected . '>' . $diploma['name'] . '</option>';
     } ?>
</select>

ループ内でチェックを行い、値が一致する場合は選択した属性をエコーし​​ます。テストで三項ステートメントを使用していることに注意してください。

于 2012-09-08T13:09:48.757 に答える
0

正解した場合は、これを試してください。

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
<?
$selected = $edu['diploma'];
foreach($diplomas->result_array() as $diploma) {
  if($diploma['name'] == $selected){
    echo '<option selected="selected" value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }else{
    echo '<option value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }
}
?>
</select>
于 2012-09-08T13:21:11.953 に答える