0

所以我有一个表单的选择选项......它是 php 回声的一部分,这就是使用单引号的原因。

<select>
          <option value='1'>1</option>
          <option value='2'>2</option>
          <option value='3'>3</option>
          <option value='4'>4</option>
          <option value='5'>5</option>
          <option value='6'>6</option>
          <option value='7'>7</option>
          <option value='8'>8</option>
          <option value='9'>9</option>
</select>   

这很好,我可以选择东西....但是我想从数据库中获取数据以设置默认值,具体取决于它在数据库中的记录(我不想从数据库中填充整个下拉列表!),但是保留下拉列表,以便如果数据库中的选项不同,用户仍然可以选择其他选项。

我可以使用此代码从数据库中获取数据,该代码有效...但不知道如何让它做我想让它做的事情...

<option value=". $row['1'] .">". $row['1'].    "</option>

有任何想法吗?

詹姆士

4

2 回答 2

1
$selected = 3;
$i = 0;
while( $i < 10 ){
 $i++;

echo "<option value='". $row[ $i ] ."' 
 ".($row[ $i]==$selected?'selected="selected"':"").">". $row[ $i ]."</option>";
}
于 2013-02-01T22:32:18.257 回答
0

首先,您使用查询从数据库中提取默认值(我假设它是用户对电影或文章或其他内容的评分),然后循环遍历 10 个不同的可能值。当该值与默认值匹配时,它会将 selected='selected' 添加到字符串中。

echo "<select>";
$result = mysqli_query($db, "SELECT rating FROM movies WHERE user='$user'");
$row = mysqli_fetch_object($result);
for($i = 1;$i => 10;$i++){
    if($i == $row->rating){
        echo "<option selected='selected' value='$i'>$i</option>";
    }else{
        echo "<option value='$i'>$i</option>";
    }
}
echo "</select>";

它与另一个答案中的功能相同,但这应该更容易阅读和理解。(无论你像我一样使用 for 循环,还是像 John 那样使用 while 循环,都没有关系,它们做同样的事情)

更新:删除你正在写的回声并放入我的代码,记得修改 MySQL 查询。

于 2013-02-01T23:54:31.877 回答