PHP AJAX 배열로 받기

PHP AJAX 배열로 받기

QA

PHP AJAX 배열로 받기

본문

안녕하세요. 제가 PHP와 HTML 이용해서 코드를 작성중인데요.

현재 select box를 이용해서 선택한 값을 AJAX로 넘겨서 배열로 받아오는 형식의 코드를 작성중입니다.

 

우선 코드는 다음과 같습니다.

 


<select name = "LCategory" id = "LCategory" class="form-control" onchange="selectLCategory();">       <!--대-->
            <option value=''>선택</option>
            <?php
                     $Lquery = "SELECT DISTINCT LargeCategory FROM tblCategory ORDER BY LargeCategory DESC";
                     $Lresult = sqlsrv_query($conn, $Lquery);
 
                     while ($Ldata = sqlsrv_fetch_array($Lresult, SQLSRV_FETCH_ASSOC)) {
             ?>
                     <option value = "<?php echo $Ldata["LargeCategory"]?>"><?php echo $Ldata["LargeCategory"]?></option>
            <?php
                      }
            ?>
</select>
 
<script>
            function selectLCategory() {
                     var L = document.getElementById("LCategory");
                     var Large = L.options[L.options.selectedIndex].value;
 
                     $.ajax({
                             url: "selectValue.php",
                             method:"POST",
                             data:{Large:Large},
                             dataType:"json",
                             success:function(data) {
                                 console.log(data.MiddleCategory);
                             }
                     })
            }
</script>

 

// selectValue.php


<?php
    $DB_IP = "";
    $DB_ID = "";
    $DB_PWD = "";
    $DB_NAME = "";
    $DB_ConnectInfo = array("UID"=>$DB_ID, "PWD"=>$DB_PWD, "Database"=>$DB_NAME, "CharacterSet" => "UTF-8");
 
    date_default_timezone_set('Asia/Seoul');
   
    $connect = sqlsrv_connect($DB_IP, $DB_ConnectInfo);
 
    if(isset($_POST["Large"]))  
    {
        $query = "SELECT DISTINCT MiddleCategory
                    FROM tblCategory
                    WHERE MiddleCategory IS NOT NULL
                        AND LargeCategory = '".$_POST["Large"]."'";  
 
        $result = sqlsrv_query($connect, $query);
        $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC);
       
        echo json_encode($row);
    }
?>

 

위와 같이 코드를 작성한 후에 console.log로 확인해봤는데 DB연결은 잘 됐으나 한개의 값만 받아옵니다.

 

DB에서 위의 쿼리를 입력했을 때 아래와 같이 2개의 값이 있는데,

1935365004_1652836483.2482.png

 

 

콘솔창에는 한개의 값만 넘어옵니다.

1935365004_1652836535.5988.png

인터넷에 검색해보니

json_encode(배열)이 array를 JSON으로 변환하는 코드던데, 혹시 이렇게 하는게 아닐까요?

 

방법을 알려주시면 감사드립니다!

이 질문에 댓글 쓰기 :

답변 1



 $result = sqlsrv_query($connect, $query);
$json_array = array();
 while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){

     $json_array[] = $row;
}
echo json_encode($json_array );

이렇게 해보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 1,124
QA 내용 검색
filter #html ×

회원로그인

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