【发布时间】:2016-10-14 01:06:38
【问题描述】:
我想要两个 <option> 通过 while 循环输出表单数据库,还需要从 $_POST[''] 函数接收它,但我只得到一个 <option> 输出。 double <option> 不会出现在这些代码中。我在这里做错了什么?
$q6 = mysql_query("SELECT * FROM menu");
echo '<form action="" method="post">'.'Need To Change <select name="tobechanged">';
while ($row = mysql_fetch_array($q6)) {
$menu_name = $row['menu_name'];
echo '<option value="'.$menu_name.'">'.$menu_name.'</option>';
}
while ($row = mysql_fetch_array($q6)) {
$menu_name2 = $row['menu_name'];
echo '<option value="'.$menu_name2.'">'.$menu_name2.'</option>';
}
echo '</select><br>
<input type="submit" name="pchange_submit" value="Change it">
</form>';
if (isset($_POST['pchange_submit'])) {
echo $_POST['tobechanged'];
}
【问题讨论】:
-
mysql_fetch消耗行,因此您的第一个循环用完结果集中的所有行,然后您的第二个循环永远不会启动,因为 fetch 调用返回布尔值 false(没有更多记录)。你为什么要这样做呢?即使您确实倒回查询,您也只会输出重复的选项,这是毫无意义的。 -
那么双倍回报的解决方案是什么?
-
运行一个循环,构建一个选项字符串,然后输出该字符串两次。或回退查询结果。
-
这里你想要 2 选择输出或 1 选择选项声明?
-
其实我想用它来改变导航菜单的父级。所以我需要 2 个选项,用户将选择一个作为父导航分配给另一个