2016-09-26 6 views
1

이 웹 사이트는 JSON 형식의 파일을 읽고이 파일을 테이블에 인쇄하는 JavaScript 함수로 보내는 PHP 코드로이 웹 사이트를 가져 왔습니다. 이 작업은 정상적으로 작동하지만이 버튼을 다시 눌러서 업데이트 된 테이블을 얻고 싶습니다. 파일 자체는 매 30 분마다 업데이트됩니다. 내가 다시 누르면함수를 호출 할 때 데이터가 업데이트되지 않습니다.

index.php를

<?php 
function clean($string){ 
    return json_decode(rtrim(trim($string),','),true); 
} 

function getLog(){ 
    $logLines = file('../../../home/shares/flower_hum/humid.log'); 
    $entries = array_map("clean",$logLines); 
    $finalOutput = ['log' => $entries]; 
    $json = json_encode($finalOutput); 
    return $json; 
} 
?> 

<html> 
    <head> 
     <script src="script.js" type="text/javascript"></script> 
     <script src="sorttable.js" type="text/javascript"></script> 
     <link rel="stylesheet" type="text/css" href="style.css"> 
     <meta charset="UTF-8"> 
     <title>title</title> 
    </head> 
    <body> 

     <button type="button" onclick='createTable(<?php getLog(); ?>)'>Generate log</button> 
     <br><br> 
     <div id="logDiv"></div> 
    </body> 
</html> 

script.js

function createTable(jsonObject) { 
//Removes existing tables if there is any. 
var myNode = document.getElementById('logDiv'); 
    while (myNode.hasChildNodes()) { 
      alert("logDiv has nodes, removing them now!") 
      myNode.removeChild(myNode.firstChild); 
    } 

//...Code that prints table 
} 

내가 한 번 버튼을 누르면 그래서 테이블이 생성되지만이 내 코드입니다 JSON 파일이 업데이트되었지만 아무 일도 일어나지 않습니다. 페이지를 새로 고치면 다시 작동합니다. 왜 내가 예상대로 작동하지 않는지 잘 모르겠습니다. 내 PHP 함수에 대한 새로운 호출 getLog(); 파일을 새 시간으로 읽고 새 JSON 객체를 생성해야합니다.

+3

PHP와 자바 스크립트를 함께 사용할 수 없습니다. PHP는 페이지가로드되기 전에 실행되고, 자바 스크립트는 이후에 실행됩니다. 서버로부터 업데이트 된 정보를 얻기 위해 아약스 호출을 조사하고 싶다. – aynber

+0

오, 안돼. 클라이언트/서버 측 코드를 사용하지 마십시오. json을 업데이트하기 위해 ajax 요청을 다시로드하거나 보내야합니다. –

+0

JSON을 HTML 속성에 넣으면 JSON에 어포 스트로피가있는 경우 잘못된 HTML이 생성됩니다. JSON을 어딘가에있는 '

관련 문제