PHP 表单传值

表单传值 就是利用表单标签来获取用户的数据然后通过http协议将数据提供给服务器  

http协议提供了六种传输规则 分别是 HEAD  GET PUT POST  DELETE OPTIONS  在web开发中最常用的就是 get 与 post规则

表单传值的意义: 帮助网站收集数据 实现用户与网站后台的数据交互  利用HTML的一组特点标签,通过浏览器解析后,提供给用户数据录入的入口 

利用GET传输规则 实现传值 

1 <a标签 >

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    a标签实现get传值 
    <!--href后面跟着是一个超链接 可以是服务器本身的文件路径 也可以是一个URL ?的作用是将数据隔开 -->
    <!--无论是get 还是 post 采用的都是键值对的方式传值的 就像数组中的索引与值 下面的例子中keywords是键 hello world 就是值-->
    <a href="index.php?keywords='hello world'">get传值</a>
    <a href="https://www.baidu.com/s?wd=hello">搜索hello</a>
    <br/>
    <!--上面的例子中 是百度的url 百度网址网站主页面的默认文件夹是s 会把接收到的键名为'wd'的数据进行引擎检索 -->
  <!--a标签实现get方式的传值 主要是利用超链接 每当点击超链接时 ?隔离的数据也会一并传值过去 -->
    <!--a标签提供的数据不是由用户操作提交的 而是开发人员提前准备好的-->
    
</body>
</html>

 

 

2 form 便签  

<form action='请求脚本文件的地址' method='所采用的传输规则 get/post'>
<input type='表单类型'  name='键名' value='值'>

表单类型 type主要有 

1普通输入项 
<input type="text">
2密码输入项  type='password'
3单选输入项  type ='radio'\
4复选框 type='checkbox'
5文件输入项 type='file'
6普通按钮 type='button'
7提交按钮  type='submit' 一键提交
8图片提交 <input type='img' src='地址'>
9重置按钮 reset type='reset' 回到初始状态 
10 下拉输入项 不用input  
<select>
<option value='值'>显示名称</option>
</select>
每个select标签是一组 
11 文本域 <textarea cols=''rows='' ><textarea> 有较多的行和列 可以设置属性 
<html>
    <body>
        <!--给index.php通过get方法传递账号 密码等信息-->
        <form action="index.php" method='POST'>
            <!--name 是键名  valuel里面的值是默认值-->
            账号:&nbsp;<input type='text'name='account' value=''>
            密码:&nbsp;<input type='password' name='password' value=''>
            性别:&nbsp;男:&nbsp;<input type='radio' name='gender' value='man' checked='checked'>&nbsp;
            女:&nbsp;<input type="radio" name="gender"value='woman'  >
            <!--checked='checked默认选中单选框'-->
            <br/>
            爱好:&nbsp;篮球:<input type="checkbox"name='hobby[]' value='篮球'>
            &nbsp;足球:<input type="checkbox"name='hobby[]' value='足球'>
            &nbsp;羽毛球:<input type="checkbox"name='hobby[]' value='羽毛球'>
            &nbsp;其他:<input type="checkbox"name='hobby[]' value='其他' checked='checked'>
            <!--无论是单选框 还是复选框 他们的name必须要相同 可以让计算机知道这是一组-->
            <!--复选框由于名字相同 在选择多个时 后面的会把前面的数据覆盖 所以我们把复选框的名字加上[]-->
            <!--PHP一旦遇到 [] 符号便认为是数组 会自动把后面的值放在数组中-->
            <br/>
            <!--下拉输入项op-->
            出生日期:&nbsp;&nbsp;
            <select name="year">
                <option value ='1990'>1990<option>
                <option value ='1991'>1991<option>
                <option value ='1992' selected='selected'>1992<option>
            </select>&nbsp; 年
            <select name="month">
                <option value ='1'>1<option>
                <option value ='2'>2<option>
                <option value ='3'>3<option>
                <option value ='4'>4<option>
                 <option value ='5'>5<option>
                <option value ='6'>6<option>
                <option value ='7'>7<option>
                <option value ='8'>8<option>
                <option value ='9'>9<option>
                <option value ='10'>10<option>
                <option value ='11'>11<option>
              <option value ='12'>12<option>
            </select>&nbsp; 月
            <br/>
            <!--下拉输入项不同于单选以及复选通过checked选中 而是通过select选中 -->
            <!--每个select为一组  name属性为键名-->
            <!--通过option((选项)标签来包裹 默认选中 selected='selected' -->
            <br/>
            <!--文本域-->
            其他说明:&nbsp;&nbsp;
            <textarea name="textarea" cols="30" rows="4"></textarea>
            <!--cols后面跟列数 rows跟行数  由于不同浏览器的兼容性很差 所以更推荐利用css 中的height 以及 width属性来控制 -->
            <br/>
            点此提交数据:<input type="submit" name='get'>
            <!--submit 会先是一个名为提交的按钮 一点击会把所有form容器内的表单数据都提交上去-->
        </form>
    </body>
</html>

点击提交后 数据就会提交到index.php 会存放在index.php 的预定义变量$_ge数组中

3 利用javaScript代码实现传值  js三大组成部分之window对象有一个location属性用来包含当前窗口的URL信息 同时location 还有一个href属性 可以动态的改变当前窗口的URL 利用这个特性 可以实现传值 

<html>
    <body>
        <form action="index.php" method="GET">
            <!--value 会显示在按钮上面 -->
            <!--button 的onclick属性通常配合js代码使用 点击按钮 执行后面的代码 -->
            <!--下面的按钮点击会跳出当前窗口的url-->
            <input type="button" value="get URL" onclick="alert(window.location)">
            <input type="button"value='change url' onclick="window.location.href='index.php?test1=666'" >
            <!--与a标签工作原理类似 都是通过URL跳转 然后通过分隔符 ? 将数据分割  后面的数据会自动进入%_get 数组-->
            <input type="button"value='change url 2.0' onclick="window.location.assign('index.php?test2=555')" >
            <!--下面这种传值方式与上面基本相同 只不过是通过assign(指定分配)方法来改变URL -->
        </form>
    </body>
</html>

 利用POST传值的方式只有<form>标签这一种方式   与上面的例子基本相同 只需要把method属性改为POST即可   <form action='' method='POST'>

GET 与 POST 的区别主要体现在 
1 get采用明文传输 数据会附在URL之后 以?分割URL和传输数据,参数之间以&相连 
  post把数据放在HTTP包的包体中 不暴露在外面 更加安全
2 因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系 。虽然HTTP协议规范没有对URL长度进行限制。但是某些特定的浏览器以及服务器会对其有限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
HTTP协议同样没有对POST的大小进行规范 主要受到服务器的处理程序的能力的限制
3 get多用于获取数据,根据get变量的不同调用不同的数据,post多用于提交数据,提交用户输入的数据

PHP接受数据 

利用PHP预定义变量 $_GET  所有通过GET方式传过来的值都放在$_GET数组中 所有通过POST方式传过来的值都放在$_POST数组中 $_REQUEST数组即存放get方式传来的值与也存放post方式传来的值 在上面的例子中 所以的数据都提交到index.php这个文件中  我们可以遍历出这两个预定义的数组 

<?php
 
//遍历出提交过来的数据
echo 'GET方式传递过来的值','<br/>'
foreach ($_GET as $key => $value) {
    echo 'my &nbsp;'.$key.'&nbsp; is &nbsp;'.$value;
    echo '<br/>';
}
echo 'POST方式传递过来的值','<br/>'
foreach ($_POST as $key => $value) {
    echo 'my &nbsp;'.$key.'&nbsp; is &nbsp;'.$value;
    echo '<br/>';
}

//在传值的时候需要注意到数组的下标也就是表单的name属性不能重复的问题

?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值