2011-07-23 63 views
0

這是令人困惑......我不明白爲什麼這是不工作...似乎很直截了當:JQuery的.POST不工作,似乎並沒有被加載後頁面

var _t = $('#newbook-title').serialize(); 
var _a = $('#newbook-author').serialize(); 
var _u = $('#newbook-authorurl').serialize(); 
var _w = $('#newbook-why').serialize(); 

$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) { 
    alert(data.status + ',' + data.message); 
}); 

然後在我的newbook.php:

<?php 
    echo "{\"status\": \"false\", \"message\":\"Made it here.\"}"; 
    return; 
?> 

警報總是未定義的,undefined爲什麼?我也試過.val()而不是.serialize()

+0

#newbook-title是一個輸入元素或形式? –

+0

前3是輸入和#newbook - 爲什麼是textarea –

回答

4

可能是因爲內容不被解釋爲JSON。告訴你期望得到$.post什麼格式:

$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) { 
    alert(data.status + ',' + data.message); 
}, 'json'); 

另一種選擇是發送一個JSON Content-Type頭,其中jQuery將解釋給你。這是更符合標準的「正確」方法:

// before content is output in your PHP script 
header('Content-type: application/json'); 
+0

謝謝,就是這樣。 –