여러 체크박스 체크하고, 또 수정할 경우에 체크된 상황을 그대로 보여주는,,, 정보
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개