반복문과 배열 질문드립니다. 채택완료
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에서 가져온상태입니다.
//
$(function() { var arr = []; for(var j=0; j<""; j++){ arr.push(""); 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(); } }); }); //]]>
자바스크립트에서 사용하려고하는데
arr.push("");
이부분 이 계속 공백으로 들어갑니다.
arr.push("");
이렇게할경우

제대로 배열이생성됩니다.
arr.push("");
이렇게도 해보았지만 되지않았습니다
그래서 j를 console.log로 찍어보았는데

잘 찍히는것까지 확인되었습니다.
왜 배열에 넣을때 공백으로 들어가는지를 모르겠습니다.
답변 1개
자바스크립트의 특성인 비동기 실행때문으로 보입니다.
php에서 가져온 배열을 해당 방법으로 하기보다는
</p>
<p>var arr = <?php echo json_encode($resultArr)?>;</p>
<p>
해당 값이 jons 오브젝트 배열 형태로 선언이 됩니다.
코드쪽이나 직관적인 면에서 해당 방법이 더 간단하고 편할거라 생각되네요.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인