猿问

PHP无法获取<select>标签的值

下面是HTML代码:

<form action="/Applet/Operator/admin.php" method="post" name="addAdmin">
    <fieldset>
      <legend>添加管理员</legend>
      <label for="name">昵称:<input type="text" name="name" id="name" placeholder="请输入昵称"></label><br>
      <label for="pwd">密码:<input type="password" name="pwd" id="pwd" placeholder="请输入密码"></label><br>
      <label for="pos">职位:
        <select name="pos" id="pos" form="addAdmin">
          <option value="1">管理员</option>
          <option value="2">审校</option>
          <option value="3" selected="selected">编辑</option>
        </select>
      </label>
      <input type="submit" value="确认添加">
    </fieldset>
 </form>

下面是PHP代码:

$name = $_POST['name'];
$pwd = hash('sha256',$_POST['pwd']);
$pos = $_POST['pos'];
var_dump($_POST['pos']);

输出结果:其中第6、7行为$pos在的地方

Notice: Undefined index: pos in E:\8.0_2.4_7.2\www\Applet\Operator\admin.php on line 6
Notice: Undefined index: pos in E:\8.0_2.4_7.2\www\Applet\Operator\admin.php on line 7
NULL

求问:为什么同一个表单中,input标签的值能够被接收至$_POST数组,而select不能呢?
我并没有给select设置disable,也没有将name属性放在option标签内。
查了好久,没有找到原因,望解惑!
(附:PHP版本7.2)

LEATH
浏览 818回答 2
2回答

智慧大石

方法1:删除select里的form="addAdmin",表单元素在表单里面没必要使用form属性 方法2: <form action="/Applet/Operator/admin.php" method="post" id="addAdmin">

泛舟湖上清波郎朗

去除 select中的 form标签
随时随地看视频慕课网APP
我要回答