2017-06-01 114 views
1

我有一个myfile.json文件是这样的:PHP代码读取JSON文件

[{"teamA": {"name": "DAR", "games": "4", "season":"RS", "points": "89"}}, 
{"teamB": {"name": "BAR", "games": "3", "season":"RS", "points": "78"}}] 

我平时读myfile.json文件是这样的:

$mydata=file_get_contents("myjsonfiles/myfile.json"); 
$decodeddata = json_decode($mydata,true); 

所以,我可以用它PHP。例如:

<?php 
    $teamApoints=$decodeddata["teamA"]["points"]; 
    $teamBpoints=$decodeddata["teamB"]["points"]; 
    $totalpoints=$teamApoints+$teamBpoints; 
?> 
<div class="apoints"><?php echo $teamApoints; ?></div> 
<div class="bpoints"><?php echo $teamBpoints; ?></div> 
<div class="totpoints"><?php echo $totalpoints; ?></div> 

现在,问题所在。我对javascript功能非常新颖,我想使用myfile.json文件的不断变化的信息来更新页面而不重新加载它。

一些网友给我的想法,但是,作为一个新人,这是我很难实现:

<head> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<script> 
    function updatePage() { 
    $.getJSON('myjsonfiles/myfile.json', function(data) { 
     var items = []; 
     $.each(data, function(key, val) { 
     items.push("<li id='" + key + "'>" + val + "</li>"); 
     }); 
     jQuery("body").html(""); 
     $("<ul/>", { 
     "class": "my-new-list", 
     html: items.join("") 
     }).appendTo("body"); 
    }); 
    } 

setInterval(updatePage, 5000); 

</script> 

由于这是不正确的,我怎么能访问到myfile.json内JS的元素函数并在PHP中使用它们?或者,如果这不可行,我如何访问myfile.json文件的元素并替换div的内容?

感谢

+0

的概念是:经过一段固定时间interval.Through此Ajax调用系统中读取您将创建一个AJAX调用JSON文件和显示结果在你的HTML(在这种情况下div)元素。 –

+0

是的,但如何?你会告诉我如何读取json文件的单个元素(如我的例子)? – Javi

回答

1

请试试这个方法:

<html> 
<head> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<script type="text/javascript"> 

    function updatePage() { 
    $.getJSON('myfile.json', function(data) { 
    var $string = ''; 
    var sum=0; 

    $.each(data, function(key, val) { 
     var x= Object.keys(val); 
     sum += parseInt(val[x]["points"]); 

     $string += "<div class='"+x+"'>"+x+" Points:" + val[x]["points"] + "</div>" ; 

    }); 
    $string += "<div class='totpoints'>Total Points:"+sum+"</div>" 
    jQuery("body").html($string); 
    }); 
} 
jQuery(document).ready(function() { 
    setInterval(updatePage, 1000); 
    //set your time as per requirement, so that after this time interval data will update automatically 
}); 

</script> 
<body></body> 
</html> 
+0

谢谢Dipanwita Kundu。我怎样才能访问json文件中的一个元素?我的意思是,在你的方法中,你为“每一个”数据做了一些事情。但我想只读取json文件的一个元素,例如val ['teamA'] ['points']。 – Javi

+0

我没有读过每个数据。数据检查'teamA','teamB'obj。从那个obect我只获取'points'。 console.log(数据)来获取数据的值 –

+0

好的,你没有达到每个数据,但你检查每个'teamA,teamB'data。如果你只想达到'teamB''points''数据呢? – Javi