Loading

表单的基本使用

一、表单基础使用

1、HTML中有一个专门用于提交数据的标签<form>,通过这个标签可以收集用户的输入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!-- 
        html文件必须要的几个标签和属性
        1.必须有form标签,里面必须有action属性和method属性,不设置action默认是当前页面,method默认是get方式
        2.表单元素(表单域)必须有name(如果希望被提交的情况)
        3.表单中必须有一个提交按钮(在没有js操作的情况下)
            ①button按钮可以提交,默认的是type属性值是submit
            ②<input type="submit">也可以用于提交
     -->
    <form action="test.php" method="get">
        <table>
            <tr>
                <td>用户名</td>
                <td><input type="text" name="username"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="text" name="password"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="登录"></td>
            </tr>
        </table>
    </form>
</body>
</html>

2、用户第一次请求这个表单得到这个表单页面,填完表单内容,点击登录,表单会自动发送到test.php这个文件,剩下的问题就是如果在test.php中获取到用户提交过来的数据

<?php
    //$_GET用于接收URL地址中的提交数据(一般是get提交的数据)
    var_dump($_GET);
    echo '<br>';
    //$_POST用于接收请求体中的提交数据(一般是post提交的数据)
    var_dump($_POST);
    echo '<br>';
    //相当于$_GET + $_POST
    var_dump($_REQUEST);
?

3、通过$_GET或者$_POST或者$_REQUEST可以得到提交数据的一个以name为键,value为值的数组,通过访问数组的就可以得到需要的数据了

二、表单的提交地址问题

  • action提交的地址指的是这个表单写完成后过来点击提交,发送过来的请求地址是什么。从便于维护性的角度考虑,一般最常见的就是提交给当前文件,然后在当前文件中判断是否是表单提交的请求
  • 将表单的处理逻辑放在HTML之前,为了灵活的控制HTML的输出,因为对于表单的处理逻辑不是每一次都需要执行,所以一般会判断请求的方式从而决定是否执行对数据的处理
  • 另外,建议使用$_SERVER[ ' PHP_SELF ' ]动态获取当前访问路径,这样因为文件重命名或者网站根目录结构调整而修改代码导致鲁棒性不强(鲁棒性指的是程序应对变化的能力)
<?php
    if($_SERVER['REQUEST_METHOD']==='POST'){
        //请求的是post,当前是点击按钮产生的请求
        var_dump($_POST);
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
        <div>
            <label for="username">用户名</label>
            <input type="text" name="username" id="username">
        </div>
        <div>
            <label for="password">密&nbsp&nbsp&nbsp码</label>
            <input type="password" name="password" id="password">
        </div>
        <button type="submit">登录</button>
    </form>
</body>
</html>

三、表单的提交方式问题

posted @ 2018-06-14 01:44  澎湃_L  阅读(348)  评论(0编辑  收藏  举报