2010-03-17 82 views
8
<select name="select"> 

</select> 

我想用数据库中的值填充上面的标记。使用PHP来填充<select></select>?

我写了php代码。

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

} 

$行获取获取正确的价值观..如何将它添加到<select>

请帮助...是新的编程

回答

8

什么是这样的:

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完成此操作。

请注意,这些可能需要一些额外的参数,我没有在我的例子中使用 - 根据您使用的字符集设置这些参数可能很有用。

+0

非常好的答案IT帮助我 – humphrey 2013-02-23 12:18:52

0
echo '<select>'; 
while($row=mysql_fetch_array($result)) { 
    echo '<option>'.$row['whatever_index'].'</option>'; 
} 
echo '</select>'; 

替换 'whatever_index' 同列您正在提取的名称。

+0

我想你忘记了属性的值 – Kevin 2010-03-17 06:25:50

+0

如果未指定值属性,之间的文本将提交/使用

<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> 

点。 – 2010-03-17 06:35:47

3

你可以看到什么可通过在执行此操作时使用:

var_dump($result); 
exit; 

要打印的第一个结果和它的数组的内容。然后你可以看到你想用什么字段来填充选项。从那里,你会做这样的事情:

foreach ($result['field'] as $field) { 
    print '<option value="'.$field.'">$field</option>'; 
} 

当然,这是一个非常简单的例子,和其他人指出,你可能希望把它变成一个表单之前清理数据。

+1

+1使用数组,而不是mysql抓取函数,在foreach里面。 – 2010-03-17 09:48:31

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>'; 

一些除了帕斯卡尔MARTIN代码,对一些预定义的值

1
echo "<select>"; 
while($option = mysql_fetch_array($result)) { 
    echo "<option>".htmlspecialchars($option['column'])."</option>"; 
} 
echo "</select>"; 
3

的自动选择我editied最后一项以这和它完美的作品。我现在唯一的麻烦是,一旦用户提交了下拉一片空白表格...有谁知道一个简单的解决方案

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>"; 
2

以上所有的答案将工作,但都没有合适的,并且需要额外的工作。你不应该使用echo来输出到屏幕,你不需要。下面的例子假设你使用的是包含数据的对象,但你明白了。正在你不必回声出HTML