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

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

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

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

본문

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

 

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

추천
1

댓글 0개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT