目录
一、表单传值的概念
二、表单传值的方式
(1)GET和POST的区别
(2)GET方式
(3)POST方式
三、接受表单数据
四、处理复选框的注意点
(1)单选框的数据处理
(2)复选框的数据处理
一、表单传值的概念
表单传值就是浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器那我们就为什么要使用它呢?动态网站的特点就是后台根据用户的需求定制数据,所谓的需求就是用户通过当前的选择或者输入的数据信息,表单就是这些数据的承载者。
二、表单传值的方式
表单传值有两种方式,分别是GET传值和POST传值,传值方式在form表单中表明即可。
(1)GET和POST的区别
post和get方式的区别:
(1)get传输的数据主要用来获取数据,不改变服务器上的资源;post传输的数据主要用来增加数据,改变服务器上的资源。
(2)传输方式上post必须使用form表单,而get可以使用form表单和URL
(3)get传输数据可以在URL中对外可见,而post不可见,如浏览器地址栏中会有显示:?数据名1=数据值1&.... 这就是get
(4)get和post能传输的数据大小不同,get为2K,post理论无限制
(2)GET方式
(1)使用form表单
<form method="get">
</form>
(2)a标签
<a href="baidu.com/index.php?学科=php">
(3)location对象的href属性
<script>
location.href="baidu.com/index.php?学科=数学"
</script>
(3)POST方式
(1)form表单
<form method="post">
</form>
三、接受表单数据
接受表单数据有三种方式,分别是$_GET,$_POST,$_REQUEST。
$_GET:接收get方式的数据
$_POST:接收post方式的数据
$_REQUEST:接受get方式或者是post方式的数据
<body> <form method="get" action="xyy.php"> <input type="checkbox" name="n1" value="v1" />第一项 <input type="checkbox" name="n2" value="v2" />第二项 <input type="checkbox" name="n3" value="v3" />第三项 <input type="submit" name="'s1" value="提交" /> </form> </body> </html>
<?php echo 'get'; echo '<br/>'; var_dump($_GET); echo '<hr/>'; echo 'post'; echo '<br/>'; var_dump($_POST); echo '<hr/>'; echo 'request'; echo '<br/>'; var_dump($_REQUEST); echo '<hr/>'; ?>
四、处理复选框的注意点
复选框:通常是将一类内容以同样的形式传递给后台,数据库储存通常是一个字段储存。复选框的特点:选中才会提交
1:在浏览器端,checkbox的name属性不论什么都会被浏览器毫无保留的提交
2:在PHP中$_POST/$_GET都会对同名name属性进行覆盖
解决方案:浏览器不识别[],但是PHP会认为[]有特殊性。系统自动认为该符号是数组的形式
<body> <form method="get" action="xyy.php"> <input type="checkbox" name="n[]" value="v1" />第一项 <input type="checkbox" name="n[]" value="v2" />第二项 <input type="checkbox" name="n[]" value="v3" />第三项 <input type="submit" name="'s1" value="提交" /> </form> </body>
(1)单选框的数据处理
Radio button:可以出现多个选项,但是只能选择一个
注意点:表单中的name属性记得都要同名,后台收到数据不需要额外处理,数据库存储只需要一个字段储存普通数据即可
(2)复选框的数据处理
1:表单中name属性使用数组格式:名字[]
2:后台接收数据之后,是一个数组(数组不能存储到数据库中)
3:PHP需要将数组转换成指定格式的字符串;使用分隔符分隔每一个元素并形成字符串:implode('分隔符',数组);
4:PHP组织直接存储到数据库中5:反过来操作,取出数据后可以用explode('分隔符',字符串)
<body> <form method="get" action="xyy.php"> <input type="checkbox" name="hoby[]" value="v1" />第一项 <input type="checkbox" name="hoby[]" value="v2" />第二项 <input type="checkbox" name="hoby[]" value="v3" />第三项 <input type="submit" name="'s1" value="提交" /> </form> </body>
<?php header('content-type:text/html;charset=utf-8'); var_dump($_GET); $shuzu=$_GET['hoby']; echo '<br/>'; var_dump($shuzu); echo '<hr/>'; $get_string=implode('+',$shuzu); echo 'string='.$get_string; echo '<hr/>'; $string_shuzu=explode('+',$get_string); print_r($string_shuzu); ?>
复选框细节:如果复选框没有选中,那么浏览器就不会提交,因此在PHP接收使用复选框或者单选框时,应该先判断数据是否存在
如:$hobby=isset($_GET['hobby'])?$_GET['hobby']:array();
//判断数据是否存在,不存在则是空数组