无法从while循环中回显html <option>的值

时间:2016-06-09 14:32:22

标签: php html mysql

我希望echo选择父值。但我得到error- NoticeUndefined index: 那么echo如何选择父母价值呢?我做错了什么?

$q = mysql_query("SELECT * FROM menu");
    echo '<form action="" method="post">
      Menu name:<input type="text" name="mname"><br>
      <select>';
    while ($row = mysql_fetch_array($q)) {
        $menu_name = $row['menu_name'];

    echo '<option value="'.$menu_name.'">'.$menu_name.'</option>';
    }
    echo '</select><br>
      <input type="submit" name="submit" value="Add Menu">
    </form>';



    if (isset($_POST['submit'])) {
        echo $mname = $_POST['mname'];
        echo $parent = $_POST[$menu_name];
    }

3 个答案:

答案 0 :(得分:1)

在选择框中添加名称,并按名称获取选择框的值。 更新的代码: -

$q = mysql_query("SELECT * FROM menu");
echo '<form action="" method="post">
  Menu name:<input type="text" name="mname"><br>
  <select name="menu_name">';
while ($row = mysql_fetch_array($q)) {
    $menu_name = $row['menu_name'];

echo '<option value="'.$menu_name.'">'.$menu_name.'</option>';
}
echo '</select><br>
  <input type="submit" name="submit" value="Add Menu">
</form>';



if (isset($_POST['submit'])) {
    echo $mname = $_POST['mname'];
    echo $parent = $_POST['menu_name'];
}

答案 1 :(得分:0)

$_POST[$menu_name]可能不存在,因为表单中只有两个元素具有name属性。文字input和提交input

option元素不会作为表单的一部分发布,而是option元素的所选select。但是,您的select元素没有name,因此无法在键/值对中使用密钥,因此不会发布。

为元素添加name

<select name="someName">

然后在POST中,您可以像获取任何其他表单元素一样获取所选值:

$_POST['someName']

答案 2 :(得分:0)

您需要添加name属性以选择标记。

for

注意:mysql_ *函数被删除,使用mysqli_ * functions