Home >Backend Development >PHP Tutorial >html - php 获取表单数据
我有两个php问件
其中
add.php:
<code><form action="action.php?action=add" method="post"> <table> <tr> <td>姓名</td> <td> <input type="text" name="name"> </td> </tr> <tr> <td>性别</td> <td> <input type="radio" name="sex" value="w">男 <input type="radio" name="sex" value="n">女 </td> </tr> <tr> <td>年龄</td> <td> <input type="text" name="arge"> </td> </tr> <tr> <td>班级</td> <td> <input type="text" name="classId"> </td> </tr> <tr> <td> </td> <td> <input type="submit" value="提交"> <input type="reset" value="重置"> </td> </tr> </table> </form></code>
action.php:
<code>switch($_GET['action']){ case "add": $name = $_POST['name']; $sex = $_POST['sex']; $arge = $_POST['arge']; $classId = $_POST['classId']; $sql = "insert into students VALUES (NULL ,'{$name}','{$sex}','{$arge}','{$classId}')"; $rw = $pdo->exec($sql); if($rw>0){ echo "<script>alert('添加成功');window.location='index.php'</script>"; }else{ echo "<script>alert('添加失败');window.history.back();</script>"; } break; }</code>
提交数据时为什么会报如下错误:
<code>Notice: Undefined index: name in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 16 Notice: Undefined index: sex in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 17 Notice: Undefined index: arge in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 18 Notice: Undefined index: classId in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 19 </code>
name sex arge classId 不是都有么 为何还时 未定义??
我有两个php问件
其中
add.php:
<code><form action="action.php?action=add" method="post"> <table> <tr> <td>姓名</td> <td> <input type="text" name="name"> </td> </tr> <tr> <td>性别</td> <td> <input type="radio" name="sex" value="w">男 <input type="radio" name="sex" value="n">女 </td> </tr> <tr> <td>年龄</td> <td> <input type="text" name="arge"> </td> </tr> <tr> <td>班级</td> <td> <input type="text" name="classId"> </td> </tr> <tr> <td> </td> <td> <input type="submit" value="提交"> <input type="reset" value="重置"> </td> </tr> </table> </form></code>
action.php:
<code>switch($_GET['action']){ case "add": $name = $_POST['name']; $sex = $_POST['sex']; $arge = $_POST['arge']; $classId = $_POST['classId']; $sql = "insert into students VALUES (NULL ,'{$name}','{$sex}','{$arge}','{$classId}')"; $rw = $pdo->exec($sql); if($rw>0){ echo "<script>alert('添加成功');window.location='index.php'</script>"; }else{ echo "<script>alert('添加失败');window.history.back();</script>"; } break; }</code>
提交数据时为什么会报如下错误:
<code>Notice: Undefined index: name in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 16 Notice: Undefined index: sex in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 17 Notice: Undefined index: arge in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 18 Notice: Undefined index: classId in /Applications/XAMPP/xamppfiles/htdocs/studentsManager/action.php on line 19 </code>
name sex arge classId 不是都有么 为何还时 未定义??
你后面的错误是你 单独 在地址栏中打开 你的 action.php?action=add
的时候显示的吧?
当你单独在浏览器中直接打开你的action.php?action=add
的时候, 它是以GET的方式请求的, 而且不会有POST
的数据过去, 所以你这个时候, 去取$_POST['xxx']
PHP 会有一个 Notice
的提示(在允许显示的情况下).
正常从你的 add.php
点按钮(有填写页数据的情况下), 是没有报你说的那个问题的.
-问题没发现,倒是发现第一次看到case可以这样用的,就不怕出错么?
form 没有设置encoding 属性。
encoding='application/x-www-form-urlencoded'
这样吧。你先var_dump($_POST);