php复选框输出checked状态:php处理复选框内容的方法示例

发布时间:2020-05-09编辑:脚本学堂
有关php复选框输出checked选中状态的方法,以及php处理复选框内容的方法与例子,供大家学习参考。

在PHP开发的表单程序中,如何处理复选和多选提交数组,以及上传文件中数组内容的处理方法。

这里重点介绍php处理复选框中内容的方法

思路:
给需要输出复选状态的input标签加上个checked="true"就可以了。

常规方法:
 

复制代码 代码示例:
<?php
$a='1,2,6,';
$ar=explode(',',$a);
$i=0;
?>
<input type="checkbox" name="tip[]"  value="a" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />
<input type="checkbox" name="tip[]"  value="b" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />
<input type="checkbox" name="tip[]"  value="c" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />
<input type="checkbox" name="tip[]"  value="d" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />
<input type="checkbox" name="tip[]"  value="e" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />
<input type="checkbox" name="tip[]"  value="f" <?php if(in_array(++$i,$ar))echo 'checked'; ?> />

一般从数据循环出来的选框要处理是否被选中都是使用IF去判断,结果造成代码一堆,速度过慢。

代码:
 

复制代码 代码示例:
function isChecked($numList,$key) {
$return = false;
$arraylist = split(",", $numList);
$Length = count($arraylist)-1; //最后一个数组结果为空,所以应当减去。
for ($i=0;$i<$Length;$i++){
if ($arraylist[$i] == $key) {
$return = true;
}
}
return $return;
}

使用方法:
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来还原成数组,非常方便,这就是两种用来常用处理数组存储到数据库,有没有更好的我不知道,我在开发中就是主要用的这两种。