실시간 json 파싱 채택완료
</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 포인트
HappyTank
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>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택