2014-04-21 87 views
0

我有一个页面,它包含一个json string.Form另一个页面我需要使用ajax调用并每3秒读取一次该值并显示在page.I能够实现除了调用间隔页面上的所有内容。我可以看到ajax调用正在工作,但新的值没有收到我的页面。这里是我的代码。如何在时间间隔调用并获取JSON值?

<? $url = 'http://mydomain.com/test';?> 
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script> 

</head> 
<body> 
<script> 
$(document).ready(function() { 

    myjsonval(); 
}); 

function myjsonval(){ 

    var jsonp = '[<? echo file_get_contents($url);?>]'; 
    var lang = ''; 
    var obj = $.parseJSON(jsonp); 
    $.each(obj, function() { 
     lang += this['precentage'] + "<br/>"; 
    }); 
    $('span').html(lang); 
    console.log('test called'); 
    setTimeout(myjsonval, 3000); 

} 
     </script> 
<span></span> 
</body> 
</html> 

当我刷新F5使用新的价值我的网页是showing.But我需要通过AJAX call.Any思路自动获得价值?

感谢

+2

你混了PHP和JavaScript。 PHP在客户端加载页面时只读取一次文件,不会再读取该文件。所以你的函数实际上一遍又一遍地读取相同的json字符串。你可以用ajax做你想做的。 –

+0

那么,你认为在这段代码中改变一些东西来实现它是什么? – user2135651

+0

先看看这个:https://api.jquery.com/jQuery.get/ –

回答

-2

请尝试以下代码:

$(document).ready(function() { 

    myjsonval(); 
    setInterval(myjsonval, 3000); 
}); 

同时删除修改你的功能myjsonval喜欢:

function myjsonval(){ 

var jsonp = '[<? echo file_get_contents($url);?>]'; 
var lang = ''; 
var obj = $.parseJSON(jsonp); 
$.each(obj, function() { 
    lang += this['precentage'] + "<br/>"; 
}); 
$('span').html(lang); 
console.log('test called'); 

}

+0

我不认为这可以解决任何问题。 jsonp仍然是相同的jsonp。 –

+0

是的,但是这个代码我可以每3秒向服务器发出请求。 VAR jqxhr = $获得( “http://mydomain.com/test”,功能MYJ(){ \t 警报( “成功”); 的setInterval(MYJ,3000);} ) 但我不知道我应该把这个放在哪里? – user2135651