2013-02-14 20 views
0

未定義的要求:繼續使用Ajax代碼獲得與阿賈克斯

$.ajaxSetup({ 
    url: "last-id-test.php", 
    type: "POST", 
}); 

$.ajax({ 
    data: {theinfo: 'forminfo'},  
    success: function(data) {alert(data)}, 
    error: function (XMLHttpRequest, textStatus, errorThrown){alert('Error submitting request.')} 
}); 

和最後-ID-test.php的的那麼簡單的PHP:

$showme = $_GET['theinfo']; 

我總是得到錯誤「未定義指數 - theinfo '...

我看不到我的錯誤?

+3

而在PHP中使用GET你在jQuery代碼使用POST ... – HamZa 2013-02-14 23:17:50

+0

好第一關你使用'POST'... – 2013-02-14 23:17:58

回答

1

如前所述在評論GET和POST方法導致數據被傳遞到不同的全局變量PHP - GET == $ _GET POST == $ _ POST

因此,在這種情況下,嘗試在你的PHP:

$showme = $_POST['theinfo'];

有用的調試

print_r($_GET); // or $_POST or $_COOKIE

對這些全局變量更多信息:http://www.php.net/manual/en/reserved.variables.php

1

嘗試以下操作:

$.ajaxSetup({ 
    url: "last-id-test.php", 
    type: "POST", 
}); 

$.ajax({ 
    data: {'theinfo': 'forminfo'},  
    success: function(data) {alert(data)}, 
    error: function (XMLHttpRequest, textStatus, errorThrown){alert('Error submitting request.')} 
}); 

注意,單引號周圍的變量名稱中使用。

現在,您需要訪問使用POST數組傳遞變量,因爲你的類型設置爲POST

$showme = $_POST['theinfo']; 
+1

你認爲'{theinfo:'forminfo'}'不會起作用?不,這是非常好的 – Bergi 2013-02-14 23:21:39

+1

由於不同的瀏覽器兼容性,使用引號括起變量更好。有時瀏覽器對這種靈活性並不滿意。 – 2013-02-14 23:23:07

+2

世界上沒有一個瀏覽器不理解'{theinfo:'forminfo'}'。 – Bergi 2013-02-14 23:23:47