Home >Backend Development >PHP Tutorial >html - php 获取表单数据

html - php 获取表单数据

WBOY
WBOYOriginal
2016-06-06 20:20:261465browse

我有两个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);

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn