실시간 json 파싱
본문
<script>
var i = 1;
function myLoop() {
setTimeout(function() {
<?php
$json_string = file_get_contents_curl("api.json");
$data = array();
$data = json_decode($json_string, true);
?>
$("#list").append("<li><?php echo $data['id']; ?></li>");
i++;
if (i < 100) {
myLoop();
}
}, 1000)
}
myLoop();
</script>
이런식으로 javascript를 통해 실시간으로 변경되는 $data['id']; 값을 1초 단위로 표시하는데
위 코드를 실행하면 값이 변경되어도 처음 값으로만 표시됩니다.
자바스크립트로 새로운 json 파일을 읽어오려면 어떻게 해야하나요??
!-->답변 2
PHP는 서버에서 실행되는 언어이고,
JS는 클라이언트(PC의 브라우저)에서 실행되는 언어이기때문에
저렇게 코딩하셔도 제대로 실행되지 않는 것입니다.
PHP 부분을 Ajax를 이용하여 $data 값을 받아오도록 작업하셔야 합니다.
// ==== PHP 파일 코딩
<?php
$json_string = file_get_contents_curl("api.json");
$data = array();
$data = json_decode($json_string, true);
echo $data['id'];
?>
// ==== JS 파일 코딩
<script>
var i = 1;
function myLoop() {
setTimeout(function() {
/*
Ajax를 이용하여 위에 코딩한 PHP 파일을 호출하여
결과값을 받아오셔야 합니다.
*/
$("#list").append("<li>"+ [Ajax를 통해 받아온 결과값] +"</li>");
i++;
if (i < 100) {
myLoop();
}
}, 1000)
}
myLoop();
</script>
셋타임 할때 php 바로 쓰지 마시고 ajax로 보내서 값을 받아서 뿌려보세요.
답변을 작성하시기 전에 로그인 해주세요.