在PHP开发的表单程序中,如何处理复选和多选提交数组,以及上传文件中数组内容的处理方法。
这里重点介绍php处理复选框中内容的方法。
思路:
给需要输出复选状态的input标签加上个checked="true"就可以了。
常规方法:
一般从数据循环出来的选框要处理是否被选中都是使用IF去判断,结果造成代码一堆,速度过慢。
代码:
使用方法:
isChecked(数组,当前单选框对应ID)
表结构:
单选框循环表(A):
id class
1 类别1
2 类别2
3 类别3
4 类别4
单选值存放表(B):
id classid
1 1,2,3,
2 2,3,4,
3 1,2,
当循环表A,判断是否当前input是否被选中,那么我们就可以使用
isChecked(classid,表Aid),返回的结果为true或者false,根据返回的结果我们给input增加或者不增加 checked="checked"。
如:
if (isChecked(classid,$value['id'])) {
echo $list = "<input type="checkbox" name="SendNums[]" value="".$value['id']."" checked="checked" />".$value['class'];
}else{
echo $list = "<input type="checkbox" name="SendNums[]" value="".$value['id']."" />".$value['class'];
}
或者可以用php集成函数 in_array();也可以处理
数组与字符串转换的函数主要就是implode用来转换成字符串,explode用来还原成数组,如果只是存入数据库,serialize函数更好,用来数据序列化存入数据库,取出用unserialize来还原成数组,非常方便,这就是两种用来常用处理数组存储到数据库,有没有更好的我不知道,我在开发中就是主要用的这两种。