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 객체를 생성해야합니다.
PHP와 자바 스크립트를 함께 사용할 수 없습니다. PHP는 페이지가로드되기 전에 실행되고, 자바 스크립트는 이후에 실행됩니다. 서버로부터 업데이트 된 정보를 얻기 위해 아약스 호출을 조사하고 싶다. – aynber
오, 안돼. 클라이언트/서버 측 코드를 사용하지 마십시오. json을 업데이트하기 위해 ajax 요청을 다시로드하거나 보내야합니다. –
JSON을 HTML 속성에 넣으면 JSON에 어포 스트로피가있는 경우 잘못된 HTML이 생성됩니다. JSON을 어딘가에있는 '