表单传值(二)

PHP处理复选框数据

复选框表单项的命名方式
复选框:通常是将一类内容以同样(同名)的形式传递给后台,数据库存储通常是一个字段存储。
复选框的特点:选中才会提交

1、在浏览器端:checkbox的name属性的值不论什么都会被浏览器毫无保留的提交
2、在PHP中$_POST/$_GET都会对同名name属性进行覆盖

解决方案:浏览器不识别[](浏览器不认为有特殊性),但是php认为[]有特殊性:系统自动认为该符号是数组的形式,所以php就会自动的将同名的但是带有[]的元素组合到一起形成一个数组

<form method="post" action="">
    <input type="checkbox" name="hobby[]" value="basketball">basketball
    <input type="checkbox" name="hobby[]" value="fottball">fottball
    <input type="checkbox" name="hobby[]" value="pingpong">pingpong
    <input type="submit" name="" value="提交">
</form>

复选框数据的接收形式
php会自动组合同名元素的[]为数组

复选框数据的常见处理

1、单选按钮的数据处理
Radio button:可以出现多个选择项,但是只能选择其中一个
   ①表单中使用的name属性,使用同名即可:只能选中一个
   ②后台接受数据也不需要额外处理
   ③数据库存储的话只需要一个字段存储普通数据即可(数字或者字符串)

   <input type="radio" name="genter" value="1" checked="checked">男
   <input type="radio" name="genter" value="2">女

   ④php拿到数据之后,组织SQL直接存储到数据表即可

2、多选按钮的数据处理
   ①表单中name属性使用数组的形式:名字[](如图1,一类复选框数据使用一个)
   ②后台接收到数据之后,是一个数组(数组不能存储到数据库)
   ③php需要将数组转换成指定格式的字符串:使用分隔符分隔每一个元素并且形成字符串implode(数组,‘分隔符’)
   ④php组织SQL直接存储到数据表

   取出来复选框数据显示:
       ⑤如果是反过来操作,那么取出数据之后使用explode把字符串变成数组
       ②在html显示当中,通过判断复选框元素是否在数组中存在,来确定复选框checkbox是否有checked=checked属性:in_array()

3、其他常规同名表单的数据处理
除开radio button单选框和checkbox复选框,很少会出现同名的表单项。如果非要使用同名的来进行管理,那么可以采用checkbox方式进行操作
1、表单中同名增加[]
2、php接收时数组处理
3、php转换成有格式的字符串
4、数据库字符串存储

复选框细节
如果复选框没有选中,那么浏览器就不会提交,因此在PHP接收使用复选框(单选框)数据的时候,应该先判断是否存在该数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值