要在从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>
答案 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
; - )。