<select name="select">
</select>
我想用数据库中的值填充上面的标记。
我已经编写了PHP代码。
while($row=mysql_fetch_array($result))
{
}
$ row正在获取正确的值..如何将其添加到<select>
请帮助......我是编程新手
答案 0 :(得分:9)
这样的事情:
echo '<select name="select">';
while($row=mysql_fetch_array($result))
{
echo '<option value="' . htmlspecialchars($row['column_for_value']) . '">'
. htmlspecialchars($row['column_for_label'])
. '</option>';
}
echo '</select>';
当然,由您决定应将$row
中的哪些项目用于每个<option>
的值和文本
只需确保您正在逃避数据库中的数据 - 特别是如果它可以包含HTML;在输出HTML时,可以使用htmlspecialchars
或htmlentities
完成此操作。
请注意,那些可能需要一些我在我的示例中没有使用的附加参数 - 设置这些参数可能很有用,具体取决于您使用的字符集。
答案 1 :(得分:3)
您可以通过以下方式查看可以使用的内容:
var_dump($result);
exit;
这将打印第一个结果及其数组内容。然后,您可以查看要用于填充选项的字段。从那里,你会做类似的事情:
foreach ($result['field'] as $field) {
print '<option value="'.$field.'">$field</option>';
}
当然这是一个非常基本的例子,正如其他人所说,你可能想要在将数据放入表格之前清理数据。
答案 2 :(得分:3)
$selected_value="selected_value";
echo '<select name="select">';
while($row=mysql_fetch_array($result))
{
if($selected_value==htmlspecialchars($row['column_for_value']))
$selected=' selected';
else
$selected='';
echo '<option value="'.htmlspecialchars($row['column_for_value']).'"'.$selected.'>'
.htmlspecialchars($row['column_for_label']).
'</option>';
}
echo '</select>';
Pascal MARTIN代码的一些补充,用于自动选择某些预定义值
答案 3 :(得分:3)
我编辑了最后一个条目,它完美无缺。我现在唯一的麻烦是,一旦用户提交表格,下拉列表就会变成空白......有没有人知道一个简单的解决方案
echo '<select name="course" id="course" >';
while( $option = mysql_fetch_array($course_results)) {
echo "<option value=".htmlspecialchars($option['cid']).">".htmlspecialchars($option['cname'])."</option>";
}
echo "</select>";
答案 4 :(得分:2)
以上所有答案都有效,但不合适,需要额外的工作。您不应该使用echo输出到屏幕而您不必。下面的示例假设您正在使用包含数据的对象,但您明白了。
<select name="sales_person">
<?php foreach ($sales_people as $sales_person){?>
<option value="<?=$sales_person->first_name?> <?=$sales_person->last_name?>"><?=$sales_person->first_name?> <?=$sales_person->last_name?></option>
<?php }?>
</select>
关键是你不必回应html
答案 5 :(得分:1)
echo "<select>";
while( $option = mysql_fetch_array($result)) {
echo "<option>".htmlspecialchars($option['column'])."</option>";
}
echo "</select>";
答案 6 :(得分:0)
echo '<select>';
while($row=mysql_fetch_array($result)) {
echo '<option>'.$row['whatever_index'].'</option>';
}
echo '</select>';
将'whatever_index'替换为您要提取的列名。