메뉴 건너뛰기

조회 수 8042 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


페이지를 만들다 보면 검색 조건에 카테고리를 선택해야 하는 경우가 생깁니다.


이러한 카테고리가 1depth 구조로 되어 있다면 DB에서 전체를 가져와 보여주면 됩니다.


하지만 일반적으로 1depth(메인) 밑에 2depth(서브) 가 있어서 메인 선택에 따라 서브 카테고리가 변경되야 합니다.


메인에 스포츠를 선택하면 서브에 야구, 농구, 축구 가 보여야 하고 공연을 선택한다면 서브에 연극, 뮤지컬, 오페라, 콘서트 등이 보여야 하는 구조입니다.


아래와 같이 말이죠.




<!DOCTYPE html>
<html lang="ko">
    <head>
        <Title>Category</Title> 
        <Meta Http-Equiv="Content-Type" Content="text/html; charset=utf-8">
        <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
    </head>
 
    1depth: <select name="mainCategory" style="width:200px">
        <option value="">전체</option>
    </select>
    2depth: <select name="subCategory" style="width:200px">
        <option value="">전체</option>
    </select>
 
<script type="text/javascript">
 
$(document).ready(function() {
     
    //Main 카테고리를 선택 할때 마다 AJAX를 호출할 수 있지만 DB접속을 매번 해야 하기 때문에 main, sub카테고리 전체을 들고온다.
     
    //****************이부분은 DB로 셋팅하세요.
    //Main 카테고리 셋팅 (DB에서 값을 가져와 셋팅 하세요.)
    var mainCategoryArray = new Array();
    var mainCategoryObject = new Object();
     
    mainCategoryObject = new Object();
    mainCategoryObject.main_category_id = "1";
    mainCategoryObject.main_category_name = "스포츠";
    mainCategoryArray.push(mainCategoryObject);
     
    mainCategoryObject = new Object();
    mainCategoryObject.main_category_id = "2";
    mainCategoryObject.main_category_name = "공연";
    mainCategoryArray.push(mainCategoryObject);
     
    //Sub 카테고리 셋팅 (DB에서 값을 가져와 셋팅 하세요.)
    var subCategoryArray = new Array();
    var subCategoryObject = new Object();
     
    //스포츠에 해당하는 sub category 리스트
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "1";
    subCategoryObject.sub_category_id = "1"
    subCategoryObject.sub_category_name = "야구" 
    subCategoryArray.push(subCategoryObject);
     
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "1";
    subCategoryObject.sub_category_id = "2"
    subCategoryObject.sub_category_name = "농구" 
    subCategoryArray.push(subCategoryObject);
     
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "1";
    subCategoryObject.sub_category_id = "3"
    subCategoryObject.sub_category_name = "축구" 
    subCategoryArray.push(subCategoryObject);
     
    //공연에 해당하는 sub category 리스트
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "2";
    subCategoryObject.sub_category_id = "1"
    subCategoryObject.sub_category_name = "연극" 
    subCategoryArray.push(subCategoryObject);
     
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "2";
    subCategoryObject.sub_category_id = "2"
    subCategoryObject.sub_category_name = "뮤지컬"
    subCategoryArray.push(subCategoryObject);
     
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "2";
    subCategoryObject.sub_category_id = "3"
    subCategoryObject.sub_category_name = "오페라"
    subCategoryArray.push(subCategoryObject);
     
    subCategoryObject = new Object();
    subCategoryObject.main_category_id = "2";
    subCategoryObject.sub_category_id = "4"
    subCategoryObject.sub_category_name = "콘서트"
    subCategoryArray.push(subCategoryObject);
    //****************이부분은 DB로 셋팅하세요.
     
     
    //메인 카테고리 셋팅
    var mainCategorySelectBox = $("select[name='mainCategory']");
     
    for(var i=0;i<mainCategoryArray.length;i++){
        mainCategorySelectBox.append("<option value='"+mainCategoryArray[i].main_category_id+"'>"+mainCategoryArray[i].main_category_name+"</option>");
    }
     
    //*********** 1depth카테고리 선택 후 2depth 생성 START ***********
    $(document).on("change","select[name='mainCategory']",function(){
         
        //두번째 셀렉트 박스를 삭제 시킨다.
        var subCategorySelectBox = $("select[name='subCategory']");
        subCategorySelectBox.children().remove(); //기존 리스트 삭제
         
        //선택한 첫번째 박스의 값을 가져와 일치하는 값을 두번째 셀렉트 박스에 넣는다.
        $("option:selected", this).each(function(){
            var selectValue = $(this).val(); //main category 에서 선택한 값
            subCategorySelectBox.append("<option value=''>전체</option>");
            for(var i=0;i<subCategoryArray.length;i++){
                if(selectValue == subCategoryArray[i].main_category_id){
                     
                    subCategorySelectBox.append("<option value='"+subCategoryArray[i].sub_category_id+"'>"+subCategoryArray[i].sub_category_name+"</option>");
                     
                }
            }
        });
         
    });
    //*********** 1depth카테고리 선택 후 2depth 생성 END ***********
         
});
</script>


  1. No Image 10Jan
    by
    2019/01/10 Views 1211 

    jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2

  2. No Image 25Mar
    by
    2021/03/25 Views 228 

    jQuery로 접속 주소(URL) 알아내기

  3. No Image 17Nov
    by
    2016/11/17 Views 6951 

    jQuery, JavaScript 새로고침(reload)

  4. No Image 22Dec
    by
    2016/12/22 Views 49612 

    jquery 플러그인 링크 모음

  5. No Image 06Sep
    by
    2018/09/06 Views 2098 

    jQuery 폼 입력값 체크 예제

  6. No Image 05Mar
    by
    2019/03/05 Views 2871 

    jquery 팝업 차단 없이 띄우기

  7. jQuery 카테고리 선택에 따른 하위 카테고리 변경 (selecbox)

  8. No Image 04Jul
    by
    2018/07/04 Views 4666 

    jquery 체크박스 배열 처리. 변수 하나에 담기.

  9. No Image 27Aug
    by
    2019/08/27 Views 1737 

    jquery 자식창에서 부모창으로 값 전달

  10. No Image 02Mar
    by
    2017/03/02 Views 11799 

    jQuery 입문: form 데이터 유효성 검사

  11. No Image 04Jun
    by
    2019/06/04 Views 853 

    jQuery 일반적 팁

  12. No Image 02Mar
    by
    2017/03/02 Views 10559 

    jquery 이용한 필수입력체크(input form)

  13. No Image 11Sep
    by
    2016/09/11 Views 7360 

    jquery 이용한 이미지 변환

  14. No Image 04Jul
    by
    2018/07/04 Views 3363 

    jQuery 유효성 검사

  15. No Image 21Sep
    by
    2016/09/21 Views 6679 

    jQuery 예약어 $ 를 사용하지 못하는 경우 해결책 noConflict()

  16. No Image 02Mar
    by
    2017/03/02 Views 6770 

    jQuery 실행패턴

  17. No Image 25Mar
    by
    2021/03/25 Views 211 

    jquery 사용자정의 속성의 사용

  18. No Image 25Mar
    by
    2021/03/25 Views 158 

    jQuery 사용자 정의 속성이 잘 반영되지 않은 경우

  19. No Image 10Jan
    by
    2019/01/10 Views 1085 

    jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제

  20. No Image 10Jan
    by
    2019/01/10 Views 1329 

    jQuery 로 탭메뉴 보였다 안보였다 맹글기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved