실시간 json 파싱 채택완료
선셋
5년 전
조회 2,692
</p>
<p><script></p>
<p> </p>
<p>var i = 1; </p>
<p> </p>
<p>function myLoop() { </p>
<p> setTimeout(function() {</p>
<p> <?php</p>
<p> $json_string = file_get_contents_curl("api.json");</p>
<p> $data = array();</p>
<p> $data = json_decode($json_string, true); </p>
<p> ?> </p>
<p> $("#list").append("<li><?php echo $data['id']; ?></li>");</p>
<p> i++; </p>
<p> if (i < 100) { </p>
<p> myLoop(); </p>
<p> } </p>
<p> }, 1000)</p>
<p>}</p>
<p> </p>
<p>myLoop(); </p>
<p></script></p>
<p>
이런식으로 javascript를 통해 실시간으로 변경되는 $data['id']; 값을 1초 단위로 표시하는데
위 코드를 실행하면 값이 변경되어도 처음 값으로만 표시됩니다.
자바스크립트로 새로운 json 파일을 읽어오려면 어떻게 해야하나요??
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
5년 전
PHP는 서버에서 실행되는 언어이고, JS는 클라이언트(PC의 브라우저)에서 실행되는 언어이기때문에
저렇게 코딩하셔도 제대로 실행되지 않는 것입니다.
PHP 부분을 Ajax를 이용하여 $data 값을 받아오도록 작업하셔야 합니다.
</p>
<p>// ==== PHP 파일 코딩</p>
<pre>
<?php
$json_string = file_get_contents_curl("api.json");
$data = array();
$data = json_decode($json_string, true);
echo $data['id'];
?> </pre>
<p>// ==== JS 파일 코딩</p>
<pre>
<script>
var i = 1;
function myLoop() {
setTimeout(function() {
/*
Ajax를 이용하여 위에 코딩한 PHP 파일을 호출하여
결과값을 받아오셔야 합니다.
*/
$("#list").append("<li>"+ [Ajax를 통해 받아온 결과값] +"</li>");
i++;
if (i < 100) {
myLoop();
}
}, 1000)
}
myLoop();
</script>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인