영카트4 다중 카테고리 선택 스크립트 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

영카트4 다중 카테고리 선택 스크립트 정보

영카트4 다중 카테고리 선택 스크립트

본문

function chkall(ca) {
var ff = document.cate_chk;
 var chkitem = "chkitem[]";
 var cnt = document.getElementsByName(chkitem);
var chk_val = ca.value;
 var chk_len = ca.value.length;
 var chked_val = new Array();
 var jj = '0';
 if(ca.checked == true) {
  sp_cont = ff.cont.value.split(',');
  for(i=0; i<cnt.length; i++) {
   if(chk_val == cnt[i].value.substring(0,chk_len)) {
    cnt[i].checked = true;
    chked_val[jj] = cnt[i].value;
    for(j=0; j<sp_cont.length; j++) {
     for(k=0; k<chked_val.length; k++)
      if(sp_cont[j] == chked_val[k]) chked_pop = chked_val.pop();
    }
    jj++;
   }
  }
  cont = sp_cont.join(',')+chked_val.join(',')+',';
  cont = cont.replace(/,*$/,",");
  cont = cont.split(',');
  cont = cont.sort();
  cont = cont.join(',')+',';
  cont = cont.replace(/,/,"");
  for(i=0; i<cont.length/2; i++)
   if(cont.substring(0,1) == ",") cont = cont.substring(1,cont.length);
  ff.cont.value = cont;
 }
 if(ca.checked == false) {
  var jj = '0';
  for(i=0; i<cnt.length; i++) {
   var jj = jj-2;
   for(j=0; j<cnt.length; j++) {
    if(chk_val.slice(0,jj) == cnt[j].value) {
     cnt[j].checked = false;
     var sp_cont = ff.cont.value.split(',');
     ff.cont.value = '';
     for(k=0; k<sp_cont.length; k++) {
      if(sp_cont[k] == cnt[j].value) {
       delete sp_cont[k];
      }
      if(sp_cont[k])
       ff.cont.value += sp_cont[k]+',';
     }

    }
   }
   if(chk_val == cnt[i].value.substring(0,chk_len)) {
    cnt[i].checked = false;
    var sp_cont = ff.cont.value.split(',');
     ff.cont.value = '';
     for(k=0; k<sp_cont.length; k++) {
      if(sp_cont[k] == cnt[i].value) {
       delete sp_cont[k];
      }
      if(sp_cont[k])
       ff.cont.value += sp_cont[k]+',';
     }
   }
   
  }
 }
parent.document.cpregform.temp.value = ff.cont.value; 
}

자바스크립트 고수분들의 도움이 필요합니다..

영카트 관리자에서 사용할려고 만들었는데

이런저런 문제가 발생하다보니 강제로 패치(?) 시킨부분이 많아서

소스가 많이 어지럽고 복잡합니다...

이 소스의 요점을 말씀 드리자면

카테고리가 나열이 되어 있고
<INPUT type=checkbox value='$row[ca_id]' onClick=\"chkall(this); \" name=chkitem[]>
이 체크박스로 해당 함수를 호출 하도록 설계(?) 했습니다..

선택 카테고리 : <input type=text name=cont size=100 value='<?=$var_t?>' readonly>

이 페이지는 iframe으로 뜨고~
제일 하단에
parent.document.cpregform.temp.value = ff.cont.value;
이부분은 페이지가 바뀌더라도 iframe을 띄운 부모창에 현재 값을 잠시 저장 시키는 역할을
하게 되어 있습니다.

부디 소스를 해독 해주시어, 좀더 간결하고 편한 함수로 만들어 주시길 바라되,
원하시는 분들에 한해 해당 함수 가져가셔서 쓰셔도 좋습니다ㅠ_ㅠ
(작동시 발생하는 문제에 대해서 티끌만큼도 책임 못져드린다는...ㅠ_ㅠ)


해당 카테고리 클릭 시

하위 모든 카테고리를 동시에 체크 하고,

하위 카테고리 체크 해제하면 상위 관련 카테고리가 다 해제 됩니다..=ㅁ=

뭐 그런 것임;;;

추천
1
  • 복사

댓글 0개

© SIRSOFT
현재 페이지 제일 처음으로