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

다중 카테고리 문의 채택완료

어렵당당당 7년 전 조회 2,652

영카트 카테고리 부분을

상위의 하위개념으로 하려고 자바로 수정중인데요..

이렇게 코딩이 되어있다고 한다면.

 

#ca_id의 value값 10을 선택했을때

#ca_id2 1010,1020,1030만 뜨고

 

#ca_id의 value값 20을 선택했을때

#ca_id2 2010,2020,2030만 뜨고

 

이런식으로 하려고 js파일에 이렇게 스크립트를 짰는데용..

문제는 10을 클릭하면 각각 하위분류가 나오는데

#ca_id value 10클릭후 다시 #ca_id value 20을클릭하면

하위의 모든것들이 remove가됩니다 ㅠㅠ

상위 각각 클릭했을때 하위가 계속뜨도록어케 수정을할끼요

 

 $(document).ready(function(){         $('#ca_id').change(function(){ //1차분류 선택시 변경된다 82             var ca_id = $('#ca_id').val(); //1차분류 #ca_id 선택시             if(ca_id == '10'){ //1차분류 value값이 10이라면                        /* $("select#ca_id2 option[value='2010']").remove();                          $("select#ca_id2 option[value='2020']").remove();                          $("select#ca_id2 option[value='2030']").remove();                          $("select#ca_id2 option[value='3010']").remove();                          $("select#ca_id2 option[value='3020']").remove();

                        $("select#ca_id2 option[value='3030']").remove();               }         });     });           

 

$(document).ready(function(){         $('#ca_id').change(function(){ //1차분류 선택시 변경된다 82             var ca_id = $('#ca_id').val(); //1차분류 #ca_id 선택시             if(ca_id == '20'){ //1차분류 value값이 10이라면                        /* $("select#ca_id2 option[value='1010']").remove();                          $("select#ca_id2 option[value='1020']").remove();                          $("select#ca_id2 option[value='1030']").remove();                          $("select#ca_id2 option[value='3010']").remove();                          $("select#ca_id2 option[value='3020']").remove();

                        $("select#ca_id2 option[value='3030']").remove();               }         });     });       

      

 

 

 

           

   

 

           

   

       

   

       

   

 

 

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

답변 2개

채택된 답변
+20 포인트
S
7년 전

영카트의 카테고리를 이용해서 다중선택을 구현하신다면 ajax를 이용해서 구현하시는 것이 더 유용하실꺼에요...

</p>

<p><!-- shop category -->

<form method="post" name="ca_frm" <span style="color:#c0392b">id="ca_frm"</span>>

<select  name="ca_id" id="ca_id" onChange="goCode(this.value);">

    <option value="" >1차분류</option>

<?php

$sql="select ca_id, ca_name from {$g5['g5_shop_category_table']}  where ca_use = '1'  and length(ca_id) = '2' order by ca_order, ca_id ";

$result=sql_query($sql);

while($row=sql_fetch_array($result)){

?>

    <option value="<?php echo $row['ca_id']?>"  <?php echo get_selected($row['ca_id'], $ca_id);?>><?php echo $row['ca_name']?></option>

<?php

}

?>    

</select></p>

<p><select  name="ca_id2" <span style="color:#16a085">id="ca_id2"</span> >

    <option value="" >2차분류</option>  

</select>

</form></p>

<p><script type="text/javascript">

<!--

function goCode(v){

        

   <strong> var url = '/shop/ajax.category.php';</strong></p>

<p>    var params = $("<span style="color:#c0392b">#ca_frm</span>").serializeArray();

    $.post(url, params, function(data){

        $("<span style="color:#16a085">#ca_id2</span>").html(data);

    });</p>

<p>}

//-->

</script>

<!-- shop category //--></p>

<p>

 

ajax.category.php  (/shop/ 폴더에 넣으세요.)

</p>

<p><?php

include_once('./_common.php');</p>

<p>

$sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']}

                where ca_use = '1' ";

if($ca_id)

        $sql .= " and ca_id like '$ca_id%' ";

$sql .= " and length(ca_id) = '4' order by ca_order, ca_id ";

$result=sql_query($sql);

?>

    <option value="" >2차분류</option> 

<?php

while($row=sql_fetch_array($result)){

?>

    <option value="<?php echo $row['ca_id']?>"  <?php echo get_selected($row['ca_id'], $ca_id2);?>><?php echo $row['ca_name']?></option>

<?php

}

?>    </p>

<p>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

어렵당당당
7년 전
스크립트로 방법좀 알수없을까요?ㅠㅠ
로토루아
7년 전
https://codepen.io/sklee227/pen/QBqGbp
어렵당당당
7년 전
정말 감사합니다!
찾던거였어요!
어렵당당당
7년 전
로토루아님
추가로...
ca_id :eq(0)으로 처음에 지정되고
선택했을경우에는 선택된 옵션값으로 저장되는법은업을까요

지금 계속 ca_id:eq(1)번부터 셀렉트가 적용되사요..
로토루아
7년 전
좀더 자세한 설명이 필요해요,,

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

m
7년 전
로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인