2014-04-21 86 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