다중 카테고리 문의
본문
영카트 카테고리 부분을
상위의 하위개념으로 하려고 자바로 수정중인데요..
이렇게 코딩이 되어있다고 한다면.
#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();
}
});
});
<select name="ca_id" id="ca_id" onchange="categorychange(this.form)">
<option value="" >1차분류</option>
<option class="a0101" value="10">1</option>
<option class="a0101" value="20">2</option>
<option class="a0101" value="20">3</option>
</select>
<select name="ca_id2" id="ca_id2" >
<option value="" >2차분류</option>
<option class="a0101" value="1010">1-1</option>
<option class="a0101" value="1020">1-2</option>
<option class="a0101" value="1030">1-3</option>
<option class="a0101" value="2010">2-1</option>
<option class="a0101" value="2020">2-2</option>
<option class="a0101" value="2030">2-3</option>
<option class="a0101" value="3010">3-1</option>
<option class="a0101" value="3020">3-2</option>
<option class="a0101" value="3030">3-3</option>
</select>
답변 2
영카트의 카테고리를 이용해서 다중선택을 구현하신다면 ajax를 이용해서 구현하시는 것이 더 유용하실꺼에요...
<!-- shop category -->
<form method="post" name="ca_frm" id="ca_frm">
<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>
<select name="ca_id2" id="ca_id2" >
<option value="" >2차분류</option>
</select>
</form>
<script type="text/javascript">
<!--
function goCode(v){
var url = '/shop/ajax.category.php';
var params = $("#ca_frm").serializeArray();
$.post(url, params, function(data){
$("#ca_id2").html(data);
});
}
//-->
</script>
<!-- shop category //-->
ajax.category.php (/shop/ 폴더에 넣으세요.)
<?php
include_once('./_common.php');
$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
}
?>
!-->!-->