在动态获取时选择下拉列表

时间:2014-02-11 11:19:17

标签: php html

要在从db.Fetch动态获取数据时勾选下拉列表,请将db和list中的所有值设置为dropdown。如果db中的值与特定值匹配,则选择该下拉列表

<select id="designation" name="designation"> 
<? while($role=mysql_fetch_array($sql_role)){ 
  if ($role['role'] == $desig ) echo $selected="selected"; else  $selected=" ";?>
  <option <?=$selected?>>Select</option>
  <option value="<?=$role['id']?>" 
  <?=$selected?> >
  <?=$role['role']?>
  </option>
   <? } ?>
</select>

3 个答案:

答案 0 :(得分:0)

为什么不进行以下更改并尝试。您可以完全消除中间变量存储。如果条件匹配,只需打印选中。而且你应该把这个默认选择选项放在while循环之外。

<select id="designation" name="designation"> 
    <option>Select</option>
    <? while($role=mysql_fetch_array($sql_role)){ ?>
        <option value="<?=$role['id']?>" <? if ($role['role'] == $desig ) echo "selected='selected'"?> ><?=$role['role']?></option>
    <? } ?>
</select>

答案 1 :(得分:0)

尝试避免像这样的短脚本

 <select id="designation" name="designation"> 
         <? while($role=mysql_fetch_array($sql_role)){ 
             <option <?php  if ($role['role'] == $desig ) { ?> selected <?php } ?> ><?php echo $role['role']; ?></option>

        <? } ?></select>

答案 2 :(得分:0)

您在支票中回复$selected。我还建议不要使用php短标签,因为在将来的PHP版本中可能会弃用它。

我推荐这段代码:

$html = '<select id="designation" name="designation">';
$html .= '<option>Select</option>';
while($role = mysql_fetch_array($sql_role))
{
    $selected = ($role['role'] == $desig) ? ' selected' : '';

    $html .= '<option value="'. $role['id'] .'"'. $selected .'>'. $role['role'] .'</option>';
}

$html .= '</select>';
echo $html;

不要忘记分配$desig; - )。