2011-04-15 43 views
0

我的AJAX請求是& PHP的交收到問題

ajaxRequest.send("var1=" + var1.value + "&var2=" + var2.value + "&var3=" + var3.value); 

但瀏覽器發送請求作爲

var1= hello&var2= world&var3=1 

PHP側接收到該數據作爲後

$variable1 = $_POST['var1']; 
$variable2 = $_POST['var2']; 
$variable3 = $_POST['var3']; 

第一個變量接收數據。 las兩個變量沒有收到任何數據。

發送請求,因爲我知道的正確格式爲

var1= hello&var2= world&var3=1 

但是爲什麼瀏覽器附加是由PHP端無法識別哪些已發送一些無用的角色?

+0

沒有ü嘗試調試所有'var1.value','var2.value'和'var3.value' – diEcho 2011-04-15 11:10:45

+0

這聽起來像問題是在你的客戶端JavaScript而不是服務器端;我懷疑它與PHP有什麼關係。我已將Javascript添加到代碼中。您使用Ajax的JavaScript庫有哪些? (也應該添加到標籤中) – Spudley 2011-04-15 11:36:48

回答

0

的問題是你的&符號將請求發送到瀏覽器之前被編碼裏面的變量。這樣,下一個變量不被識別。相反,第一個變量包含:hello&var2= world&var3=1。我不知道你正在使用哪個JavaScript庫,但在我看來,或者你使用了錯誤的函數參數(也許你需要注入一個對象而不是字符串?),或者函數錯誤地編碼了字符串。

jQuery's ajax method例如,查詢參數作爲對象傳遞,就像這樣:

var data = { 'var1' : var1.value, 'var2' : var2.value }; 
$.ajax('/ajax/', { 'data': data}); 
0

當你使用urlencode時會發生什麼?

你可以把數據串到一個變量第一則用urlencode是veriable並通過ajaxRequest.send