관리자님을 비롯한~! 여러 고수분들 절실히 도움을 원합니다!!!!!=ㅁ= > 자유게시판

자유게시판

관리자님을 비롯한~! 여러 고수분들 절실히 도움을 원합니다!!!!!=ㅁ= 정보

관리자님을 비롯한~! 여러 고수분들 절실히 도움을 원합니다!!!!!=ㅁ=

본문

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

이 아래 소스는 무엇이냐!!!=ㅁ= 하면.......

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

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

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

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

카테고리가 나열이 되어 있고
<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을 띄운 부모창에 현재 값을 잠시 저장 시키는 역할을
하게 되어 있습니다.

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

헉!!!!!!!! 정작 뭐하는 소스인지는 말씀 안드렸군요 ㅋㅋㅋㅋㅋㅋㅋㅋ

해당 카테고리 클릭 시

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

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

뭐 그런 것임;;;

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; 
}

추천
1

댓글 10개

전체 86 |RSS
자유게시판 내용 검색

회원로그인

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