2011-04-15 45 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