반복문과 배열 질문드립니다.

반복문과 배열 질문드립니다.

QA

반복문과 배열 질문드립니다.

본문

mysqli_set_charset($conn,"utf8");
$select_query = "SELECT it_name FROM g5_shop_item";
$result = mysqli_query($conn, $select_query);

$cnt = 0;
 $resultArr = array();
while($r = mysqli_fetch_assoc($result)){
$resultArr[] = $r;
$cnt ++;
}

 

 

이렇게 해서 현재 DB에서 가져온상태입니다.

 

 

 

<script type="text/javascript">

//<![CDATA[

$(function() {
    var arr = [];
    for(var j=0; j<"<?php echo $cnt; ?>"; j++){
        arr.push("<?php echo $resultArr["j"]['it_name']; ?>");
        console.log(j);
    }

    console.log(arr);
    var availableCity = arr;
    $("#sch_str").autocomplete({
        source: availableCity,
        select: function(event, ui) {
            console.log(ui.item);
        },
        focus: function(event, ui) {
            return false;
            //event.preventDefault();
        }
    });
});
//]]>
</script>

 

자바스크립트에서 사용하려고하는데


        arr.push("<?php echo $resultArr["j"]['it_name']; ?>");
 

 

이부분 이 계속 공백으로 들어갑니다.

 

        arr.push("<?php echo $resultArr["0"]['it_name']; ?>");

 

이렇게할경우

 

3731834642_1613721416.7516.png

 

제대로 배열이생성됩니다.

 

        arr.push("<?php echo $resultArr["+j+"]['it_name']; ?>");

 

이렇게도 해보았지만 되지않았습니다

 

그래서 j를 console.log로 찍어보았는데

 

3731834642_1613721446.7831.png

 

잘 찍히는것까지 확인되었습니다.

 

왜 배열에 넣을때 공백으로 들어가는지를 모르겠습니다.

이 질문에 댓글 쓰기 :

답변 1

자바스크립트의 특성인 비동기 실행때문으로 보입니다.

 

php에서 가져온 배열을 해당 방법으로 하기보다는


var arr = <?php echo json_encode($resultArr)?>;

형태로 선언하시고 console.log(arr)을 찍어보세요.

해당 값이 jons 오브젝트 배열 형태로 선언이 됩니다. 

코드쪽이나 직관적인 면에서 해당 방법이 더 간단하고 편할거라 생각되네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 27
QA 내용 검색

회원로그인

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