2012-12-17 30 views
0

可能重複:
How to return AJAX response Text?JSON返回從JQuery的要求未定義

我試圖建立一個jQuery超時功能的表單提交動作。我有類似的地方通過PHP的頁面重新加載,並有初始頁面加載存儲在$_SESSION['pageLoad']的時間。我現在想要做的就是抓住這個值並在一些JQuery數學中使用它。

摸索SO後,我在下面抵達:

PHP

<?php 
    //filename: getsession.php 
    session_start(); 
    echo json_encode($_SESSION['pageLoad']); 

JQuery的

$("#sms-creator").submit(function() { 
    var  session; 
    $.ajaxSetup({cache: false}) 
    $.get('sms_includes/getsession.php', function(data) { 
     session = data; 
    }); 

    //at this point I just want to see what I'm getting, hence the next 2 lines... 
    alert(session); 
    return false; 
}); 

到PHP文件的路徑是相對於表單頁面,而不是.js文件。

我的警報只返回'未定義'。我對JavaScript和它的庫沒有經驗,所以對我來說這個錯誤並不明顯。任何幫助讚賞。

+2

歡迎來到** async **的美妙世界!你不能那樣做。 – SLaks

回答

2

ajax調用是異步完成的。所以當$ .get被執行時,請求被髮送到服務器進行響應,但是,javascript程序不會等待響應,因爲它是異步完成的。當您提醒(會話)時,變量會話尚未設置爲服務器返回的數據。嘗試同步執行ajax,或將警報會話放入ajax回調中。

+0

好的,我現在可以看到這個問題,並找到了一些示例。多謝你們。接受我的時間 – Eamonn