三种接收方式
$_GET
$_POST
$_REQUEST
表单元素必须要使用name元素才能不服务器接收
使用request方式post会覆盖get
<?php
//接收数据
//超全局预定于数组
//直接使用?name=values
echo '<pre>';
var_dump($_GET);
echo '<hr>';
echo '<pre>';
var_dump($_POST);
echo '<hr>';
//使用request接收数据时,如果遇到同名数组,post覆盖get
echo '<pre>';
var_dump($_REQUEST);
echo '<hr>';
/*
使用post传值的时候必须要使用name,在网站中创建一个下标
*/
?>
在浏览器端不管多选框checkbox的name是什么都会被浏览器提交
在php中post和get会对name属性覆盖
解决方案
浏览器不认为[]有特殊性但是php认为[]有特殊性
在前端中添加[],在php中会认为这是一个数组只是用户没有添加索引
也就是没有添加下标,php会自动添加从0开始到结束
<html>
<head></head>
<body>
<form method="POST" action="01.php">
<input type="checkbox" name="hobby[]" value="basketball">basketball
<input type="checkbox" name="hobby[]" value="pp">pp
<input type="checkbox" name="hobby[]" value="aa">aa
<input type="submit" name="ti" value="">
</form>
</body>
</html>
复选框数据常见处理
单选按钮的数据处理
多个选项只能选一个
表单中使用name属性,使用同名即可,因为只会上传一个
后台接收数据不需要额外处理
数据库存储只需要一个字段存储数据
checked="checked" 默认选中
多选框怎么处理数据
表单中的name属性使用数组格式:名字[]
后台接收到数据后,是一个数组
php需要将数组转换为字符串才能储存到数据库
implode(要分割的数组,‘分隔符’)
$str=implode($gend,',');
字符串转换数组
explode(',',$字符串名);
checkbox可以使用重名操作
1.表单中同名添加[]
2.php接收时按照数组处理
3.php转换有格式的字符串
4.数据库按照字符串储存
先进行判断是否为空
isset($_POST[])?$_POST['']:array();
<?php
$gend=isset($_POST['hobby'])?$_POST['hobby']:array();
//$gend=$_POST['hobby'];
print_r($gend);
echo "<hr/>";
$str=implode($gend,',');
echo $str,"<br/>";
var_dump(explode(',', $str));
?>