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

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

· 7년 전 · 2381

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

 

리크루트 등에서 워낙 체크박스가 많아서...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

댓글 작성

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

로그인하기

게시글 목록

번호 제목
17927
17926
17922
17921
17915
17910
17907
17892
17888
17879
17878
17874
17873
17872
17871
17870
17869
17868
17866
17865
17864
17863
17862
17859
17856
17845
17835
17834
17826
17823