테스트 사이트 - 개발 중인 베타 버전입니다

여러 체크박스 체크하고, 또 수정할 경우에 체크된 상황을 그대로 보여주는,,,

· 7년 전 · 2380

너무 부족한 코드가 누군가에게 필요할까요? 

 

리크루트 등에서 워낙 체크박스가 많아서...w write m modify

여러 체크박스 체크하고 저장했을 때, 체크박스의 값이 쉼표로 디비에 저장되는 경우,

그 페이지를 수정할 경우에 체크된 상황을 그대로 보여주는 함수입니다. 

 

디비에는 순서대로 쉼표로 체크박스의 값들이 섞여저장되어는 경우에.. .

수정페이지에 들어갔을 때 제대로 골라서 체크된 값들만을 체크해주는 함수입니다. 

 

 

function showCheckbox4wm($mainStrArr, $mainValArr, $colname, $subArr)
{
    $idxArr = array();
    if (!empty($subArr)) {
        for ($i = 0; $i < sizeof($subArr); $i++) {
            // 인덱스를 가져온다.

            $temp = array_keys($mainValArr, $subArr[$i]);
//                                    print_r2($temp[0]);
            if(sizeof($temp) > 0){
                $idxArr[] = $temp[0]; // 발견한 처음 인덱스만 모으면 된다.
            }
        }
        sort($idxArr);
    }

    // 배열을 값의 크기대로 소팅을 한번 해준다. 아래 for문에서 순차적 검색을 해야하므로...
//                            print_r2($idxArr);
//                            print_r2($subArr);
    echo "<ul>";
    for ($i = 0; $i < sizeof($mainStrArr); $i++) {

        //
        if (!empty($subArr)) {
            $checked = (in_array($i, $idxArr)) ? "checked" : "";
        } else {
            $checked = '';
        }

        echo "
                                    <li>
                                    <input type=\"checkbox\" name=\"{$colname}[{$i}]\" id=\"{$colname}_{$i}\" value=\"{$mainValArr[$i]}\" {$checked}> 
                                    <label for=\"{$colname}_{$i}\">{$mainStrArr[$i]}</label>
                                    </li>
                                    ";
    }
    echo "</ul>";
}

 

 

예제, 

$recruit_11ArrMain = array("국민연금", "건강보험", "고용보험", "산재보험", "건강검진", "차량유료보조금", "각종경조금");

$recruit_11ArrSub = "산재보험,건강검진,고용보험";

showCheckbox4wm($recruit_11ArrMain, $recruit_11ArrMain, "recruit_11", $recruit_11ArrSub);

일 때 나열되고, sub문자열에 있는 항목들이 체크되어 보여지도록 됩니다. 

 

 

정성스럽게 만들어진 예제나 설명이 아니고 거칠어서 죄송합니다. Orz

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
18088
18080
18078
18070
18061
18037
18036
18033
18022
18021
18020
18018
18004
17999
17995
17987
17982
17981
17980
17970
17965
17964
17963
17962
17960
17956
17953
17949
17930
17928