这是我的代码,它填充了一个下拉菜单,所有工作都很完美,但是在编辑数据库记录时,我希望下拉列表中的第一个值是数据库中当前的值,我该怎么做? / p>
<li class="odd"><label class="field-title">Background <em>*</em>:</label> <label><select class="txtbox-middle" name="background" />
<?php
$bgResult = mysql_query("SELECT * FROM `backgrounds`");
while($bgRow = mysql_fetch_array($bgResult)){
echo '<option value="'.$bgRow['name'].'">'.$bgRow['name'].'</option>';
}
?>
</select></li>
答案 0 :(得分:2)
你可以这样做:
$counter = 1;
while($bgRow = mysql_fetch_array($bgResult)){
if ($counter === 1)
{
echo '<option value="'.$bgRow['name'].'" selected="selected">'.$bgRow['name'].'</option>';
}
else
{
echo '<option value="'.$bgRow['name'].'">'.$bgRow['name'].'</option>';
}
$counter++;
}
可以看出我已为您添加了selected="selected"
,因此它会自动为您服务:)
答案 1 :(得分:2)
您可以在相关selected="selected"
上设置<option>
属性。据推测,在while循环中会进行某种检查,检查包含当前值的变量。
答案 2 :(得分:0)
如果我错了,请更正我,我相信你有另一个数据库表,其中包含所选背景(例如带有背景字段的用户表),你需要进行查询以从其他表中获取背景并添加所选=“selected”属性为背景的选项标签,请检查下面的代码(希望它有帮助):
<?php
$result = mysql_query("SELECT `background` FROM `users` LIMIT 1");
$myBg = mysql_fetch_array($result, MYSQL_ASSOC);
$bgResult = mysql_query("SELECT * FROM `backgrounds`");
while($bgRow = mysql_fetch_array($bgResult)){
if($myBg['background'] == $bgRow['name'])
echo '<option value="'.$bgRow['name'].'" selected="selected">'.$bgRow['name'].'</option>';
else
echo '<option value="'.$bgRow['name'].'">'.$bgRow['name'].'</option>';
}
?>