PHP处理数组模式的以选未选input多选框

PHP处理数组模式的以选未选input多选框

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

我做了一个闭包分享给大家,希望对大家有用。

代码:

function ifNumExists($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;

}

使用方法:

ifNumExists(数组,当前单选框对应ID)

表结构:

单选框循环表(A):

idclass

1类别1

2类别2

3类别3

4类别4

单选值存放表(B):

idclassid

11,2,3,

22,3,4,

31,2,

当循环表A,判断是否当前input是否被选中,那么我们就可以使用

ifNumExists(classid,表Aid),返回的结果为true或者false,根据返回的结果我们给input增加或者不增加 checked="checked"。

如:

if (ifNumExists(classid,$value['id'])) {

$list = $list."<input type=\"checkbox\" name=\"SendNums[]\" value=\"".$value['id']."\" checked=\"checked\" />".$value['class']."</li>";

}else{

$list = $list."<input type=\"checkbox\" name=\"SendNums[]\" value=\"".$value['id']."\" />".$value['class']."</li>";

}

return $list;