<select name="select">
</select>
我希望从数据库中获取值来填充上述标签。
我已经编写了以下PHP代码。
while($row=mysql_fetch_array($result))
{
}
$row正常获取值。如何将其添加到
<select name="select">
</select>
我希望从数据库中获取值来填充上述标签。
我已经编写了以下PHP代码。
while($row=mysql_fetch_array($result))
{
}
$row正常获取值。如何将其添加到
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>
的值和文本。
请注意,这些函数可能还有一些额外的参数,我在示例中没有使用 -- 根据您使用的字符集,设置这些参数可能会很有用。
您可以通过以下方式在 while 循环中查看可用内容:
var_dump($result);
exit;
这将打印第一个结果及其数组内容。然后您可以看到要使用哪个字段来填充选项。从那里开始,您可以执行以下操作:
foreach ($result['field'] as $field) {
print '<option value="'.$field.'">$field</option>';
}
$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的代码进行了一些补充,以便自动选择一些预定义值
<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>
我编辑了上一篇文章,现在它运行得非常完美。唯一的麻烦是,一旦用户提交表单,下拉框就会变空白... 有人知道一个简单的解决方案吗?
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>";
echo "<select>";
while( $option = mysql_fetch_array($result)) {
echo "<option>".htmlspecialchars($option['column'])."</option>";
}
echo "</select>";
echo '<select>';
while($row=mysql_fetch_array($result)) {
echo '<option>'.$row['whatever_index'].'</option>';
}
echo '</select>';
将“whatever_index”替换为您要获取的列名。
value="'.$field.'"
没有任何好处,因为它与选项文本完全相同。这实际上是不必要的标记膨胀,因为所有表单提交和 JavaScript 操作都将正确地选择文本作为值。 - mickmackusa