一般從數據循環出來的選框要處理是否被選中都是使用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):
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是否被選中,那麼我們就可以使用
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;