在下拉框中显示DB中的当前值

时间:2010-05-24 11:24:16

标签: php html

这是我的代码,它填充了一个下拉菜单,所有工作都很完美,但是在编辑数据库记录时,我希望下拉列表中的第一个值是数据库中当前的值,我该怎么做? / 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>

3 个答案:

答案 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>';
    }
?>