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

php ajax 로 배열 값 받는 방법 문의합니다. 채택완료

이하성 8년 전 조회 6,602

[ajax 문서] 
function ajaxItemLoad(id) { 
    var frm = document.itemList; 
    frm.ca_id.value = id; 
    $.ajax({ 
        url:'./ajax.itemload.php', 
        type:'post', 
        datatype:'json', 
        data:$(frm).serialize(), 
        success:function(data){ 
            
            var items = []; 
            $.each(data, function(key,val) { 
                items[key] = val; 
                alert($items[key]); 
            }); 
            
        } 
    }) 


[php 문서] 
<?php 
include_once('./_common.php'); 

$data = array(); 
$ca_id = $_POST['ca_id']; 

$sql = " select * from g5_shop_item where ca_id LIKE '{$ca_id}%' or ca_id2 LIKE '{$ca_id}%' or ca_id3 LIKE '{$ca_id}%' "; 
$result = sql_query($sql, true); 
$cnt = 0; 
while( $row = mysqli_fetch_array($result) ) { 
    $data[$cnt][it_name] = $row['it_name']; 
    $cnt++; 

echo json_encode($data); 
exit; 
?> 


위 파일들을 동작시키면 

jquery-1.11.3.min.js:2 

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"it_name":"\ucef4\ud4e8\ud130 \uc8fc\uc694\ubd80\ud488 CPU \ud14c\uc2a4\ud2b8\uc0c1\ud488 -1-"},{"it_name":"\ucef4\ud4e8\ud130 \uc8fc\uc694\ubd80\ud488 CPU \ud14c\uc2a4\ud2b8\uc0c1\ud488 -2-"},{"it_name":"\ucef4\ud4e8\ud130 \uc8fc\uc694\ubd80\ud488 CPU \ud14c\uc2a4\ud2b8\uc0c1\ud488 -3-"}] 

크롬 콘솔창에 위와 같은 에러문구가 표시됩니다. 
스택오버플로 사이트에서 확인해보니 jquery-1.11.3.min 제이쿼리 버젼문제라고 하던데... 
위 에러가 뜨는 이유가 버젼문제가 맞나요? 

영카트에서 이런 제이쿼리 버젼문제때문에 에이젝스 배열값을 받지 못한다는건 말이 안되는거같은데.. 
(이미 다른 ajax 파일들 보면 다 배열값으로 넘기고 있고...) 

어디가 문제인지 알려주신다면 감사하겠습니다 ㅜ 

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

답변 2개

채택된 답변
+20 포인트
잉끼s
8년 전
로그인 후 평가할 수 있습니다

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

W
8년 전

</p><p><span style="font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">while( $row = mysqli_fetch_array($result) ) { </span><br style="color: rgb(238, 238, 238); font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(47, 99, 156);"><span style="font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">    $data[$cnt]['it_name'] = $row['it_name'];  // <- ' 가 빠진듯합니다만..</span><br style="color: rgb(238, 238, 238); font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(47, 99, 156);"><span style="font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">    $cnt++; </span><br style="color: rgb(238, 238, 238); font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(47, 99, 156);"><span style="font-family: Dotum, AppleGothic, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">} </span> </p><p>

 

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

답변에 대한 댓글 1개

이하성
8년 전
확인해보니 이 문제는 아닌 것 같습니다.

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

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

로그인