2014-01-30 96 views
1

我有application.php頁面,其中json數組與PHP回聲。在客戶端,我希望在提交表單(submitHandler)時在按鈕上單擊$ .getJSON()來獲取json數組。問題是,如果我在$ .getJSON()中運行alert()或console.log(),則什麼都不會發生(我只能在控制檯中看到GET執行)。

代碼:

$.getJSON('../views/application.php', function(data) { 
    alert('alert1'); 
    if(data) { 
     document.write(data.resp); 
     alert('alert2'); 
    } 
    else { 
     alert('error'); 
    } 
}); 

GET http://localhost/app/views/application.php 
+0

試試這個調試? –

+0

使用會話變量的要點是它們對客戶端不可見? – Erik

+0

我不認爲你使用ajax的方式應該是?如果你執行你的第一個「post」並且php產生了一個結果,你需要讓PHP產生「echo」結果,這樣它才能被讀爲ajax響應,然後你可以在你的第二個ajax請求中使用這個值。這不是你怎麼做的? – niaccurshi

回答

1

您可以使用VAR溫度在你的腳本和您的數據存儲變量中。

 var x;

<script type="text/javascript"> 
     x='<?php echo $comparisonResult; ?>'; 
    </script> 
0

我認爲最好的辦法是在你的第一個POST請求的響應返回所需的服務器數據,就像這樣:

$.post("/first.php", function(serverData) { 
    var param = serverData.something; 
    ... 
    $.post("/second.php", param, function(data) { 
     ... 
    }); 
    }); 

如果您使用的是兩個不同的頁面兩個要求,你可以存儲serverData在localStorage。您澄清後

編輯:

如果需要,當你點擊一個按鈕來獲得前阿賈克斯後的數據,你可以這樣說:

$("#second-button").click(function() { 
    $.getJSON("/data.php", function (serverData) { 
     var param = serverData.something; 
     $.post("/second.php", param, function(data) { 
     ... 
     }); 
    } 
}); 

編輯2

由於某種原因(錯誤的網址,無效的json等),您的$ .getJSON失敗。也許在`$ _SESSION`,臨時文件,數據庫

$.getJSON("/data.php", function (serverData) { 
    console.log(serverData); 
}).fail(function(j, t, e) { 
    console.error(e); 
}); 
+0

現在我在我的頁面上看到了json數組,它在php腳本中被回顯。我嘗試使用$ .getJSON()獲取json數據,但沒有任何結果。你有什麼想法我做錯了嗎? – Erik

+0

你是什麼意思,什麼都沒有發生,你有錯誤,或者serverData是空的?沒有看到完整的代碼就很難給出相關的建議。你能編輯你的問題並添加你嘗試過的嗎? –

+0

編輯的問題。 – Erik