【问题标题】:Two html <option> output from php while loop not works来自 php 的两个 html <option> 输出 while 循环不起作用
【发布时间】:2016-10-14 01:06:38
【问题描述】:

我想要两个 &lt;option&gt; 通过 while 循环输出表单数据库,还需要从 $_POST[''] 函数接收它,但我只得到一个 &lt;option&gt; 输出。 double &lt;option&gt; 不会出现在这些代码中。我在这里做错了什么?

$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 个选项,用户将选择一个作为父导航分配给另一个

标签: php html mysql


【解决方案1】:
    $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>';

}

echo '</select><br>
  <input type="submit" name="pchange_submit" value="Change it">
</form>';

if (isset($_POST['pchange_submit'])) {
    echo $_POST['tobechanged'];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2012-01-02
    • 2011-02-28
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多