채택완료

다단분류 질문있습니다.

2019-04-18 (목) 14:18:03 2,111

item.php

Copy
<tr>

    <td>

        <select class="cate_sel></select> // 기본분류

    </td>

</tr>

<tr>

    <td>

        <select class="cate_sel></select> // 2차분류

    </td>

</tr>

<tr>

    <td>

        <select class="cate_sel></select> // 3차분류

    </td>

</tr>

ajax.php

Copy
<?php

$str = strlen($category_level);

 

if($str == 2){
    $sql = "select ca_name 
        from g5_shop_category 
        where ca_id 
        like '{$category_level}%'
        and length(ca_id) = 4
        order by ca_id asc";
    $str = 4;
} else if($str == 4){
    $sql = "select ca_name 
        from g5_shop_category 
        where ca_id 
        like '{$category_level}%'
        and length(ca_id) = 6
        order by ca_id asc";
}


$result = sql_query($sql);

if($row = 1){
    echo "<option>선택하세요</option>";
}

while($row=sql_fetch_array($result)){
    echo "<option>".$row['ca_name']."</option>";

}

?>

script

Copy
$('.cate_sel').change(function(){

    var code = $(this).val();

    var next_sel = $(this).closest('tr').next().find('select');

    $.ajax({

        type : "POST",

        url : "ajax.php",

        data : {

            category_level : code

        },

        success : function(){

            $(next_sel).html(data)

        },

    });

});

안녕하세요. 도움을 받아서 여기까지는 했습니다.

기본분류 선택시 2차분류가 변하는거까지는 됐습니다.

그런데 2차분류를 선택했을때 3차는 아무 변화도 없고 에러도 뜨지가 않습니다.

컬럼 사이즈는 1차분류가 2, 2차분류가 4, 3차분류는 6 입니다.

혹시 스크립트에서 문제가 되는게 있는건가요...?

제가 공부해야 하는게 맞고 어제부터 계속 보고 있는데 답이 안나와서 답답합니다ㅠ

도움 한번만 더 부탁드립니다...

답변 1개 / 댓글 2개

채택된 답변
+20 포인트

이전 게시물에서 제가 드렸던 답변이 다 적용되지 않았네요. 'example.php 쿼리문에서 ca_id도 가져오도록 처리하고 ca_id를 option value에 포함시켜서 처리' 부분과 스크립트가 일부 누락됐습니다.

Copy
$.ajax({
            type : "POST",
            url : "ajax.php",
            data : {
                category_level : code
            },
            success : function(data){
                $(next_sel).html(data);
            }
        });
Copy
if($str == 2){
    $sql = "select ca_name, ca_id
        from g5_shop_category 
        where ca_id 
        like '{$category_level}%'
        and length(ca_id) = 4
        order by ca_id asc";
    $str = 4;
} else if($str == 4){
    $sql = "select ca_name, ca_id
        from g5_shop_category 
        where ca_id 
        like '{$category_level}%'
        and length(ca_id) = 6
        order by ca_id asc";
}

$result = sql_query($sql);
if($row = 1){
    echo "<option>선택하세요</option>";
}
while($row=sql_fetch_array($result)){
    echo "<option value='".$row['ca_id']."'>".$row['ca_name']."</option>";
}

위 내용을 반영하시면 될겁니다.

답변에 대한 댓글 2개

같은 내용으로 번거롭게 해드려서 죄송합니다...
적용 잘 되고 보여주신 소스 보면서 공부할게요 감사합니다 ^^
아뇨; 죄송하다고 하실 필요까진;; 모르면 질문을 남길 수 있는거니까요. 제대로 동작하니 다행이네요.

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