使用PHP填充<select> </select>?

时间:2010-03-17 06:21:38

标签: php

<select name="select">

</select>

我想用数据库中的值填充上面的标记。

我已经编写了PHP代码。

while($row=mysql_fetch_array($result))
{

}

$ row正在获取正确的值..如何将其添加到<select>

请帮助......我是编程新手

7 个答案:

答案 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时,可以使用htmlspecialcharshtmlentities完成此操作。

请注意,那些可能需要一些我在我的示例中没有使用的附加参数 - 设置这些参数可能很有用,具体取决于您使用的字符集。

答案 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'替换为您要提取的列名。