2017-06-14 60 views
0

我在AJAX和PHP之間的通信存在問題。我已經從相關的問題和答案中嘗試了所有這些代碼,但是沒有任何工作。此代碼應該從同一臺服務器上的PHP文件接收JSON字符串,並在HTML區域中顯示值。無法將值從PHP傳遞到AJAX

$(document).ready(function(){ 
    setInterval(ajaxcall, 1000); 
}); 

function ajaxcall(){ 
var data = $('#signup_form').serialize(); 

    $.ajax({ 
     type: "GET", 
     url: "test.php", 
     data: data, 
     dataType: 'json', 
     success: function (data) { 
      window.console.log("Success"); 
      document.getElementById("count").innerHTML = $('#time').html(data.time); 
    },error: function alert(){"error";} 
});} 

當我在瀏覽器中執行腳本(使用調試模式)時,沒有任何反應。我認爲這意味着'成功'方法存在問題。

這裏是我的PHP代碼(用於測試)的一部分:

for($i = 0; $i < 50; $i++){ 
    sleep(1); 
    return_json($argv[1]); 
} 

//return all values for html/javascript 
function return_json($a){ 
    $json = array('time' => $a); 
    echo json_encode($json); 
} 

我希望你們中的一些可以幫助我:)

+1

是否Ajax調用ctually返回的東西?使用螢火蟲或類似的東西來檢查hwat你的ajax調用返回 – Naruto

+0

'window.console'方法我應該能夠看到每秒,但沒有任何東西寫在控制檯。 – Slice18

+1

你從$ _GET設置變量? $ argv用於cli我認爲...對於ajax使用超全局$ _GET –

回答

0

您應該將內容類型添加到您的響應頭:

//this line 
header('Content-type: application/json'); 

for($i = 0; $i < 50; $i++){ 
    sleep(1); 
    return_json($argv[1]); 
} 

//return all values for html/javascript 
function return_json($a){ 
    $json = array('time' => $a); 
    echo json_encode($json); 
} 

延伸閱讀這裏更詳細的解釋:J- Query $.ajax request of dataType json will not retrieve data from PHP script

0

函數ajaxcall()是否真的被調用?嘗試在其begining添加console.log電話,如

function ajaxcall(){ 
    var data = $('#signup_form').serialize(); 
    console.log(' form data = %o', data) 

    //... 

還有另外一個可能的問題的功能error: function alert(){"error";}什麼都不可見。如果你的服務器腳本返回一個錯誤,你將在這種情況下看不到任何東西。

它更改爲類似

error: function(){ alert("error"); }