如何通过ajax向php发送数组?

如何通过ajax向php发送数组?,php,ajax,multiple-select,Php,Ajax,Multiple Select,我想发送一个用javascript构建的数组,数组中的选定值为multiple-select。有没有办法使用ajax将此数组发送到php脚本?您可以使用XML或JSON发回服务器。您的javascript必须构造post,对于XML,这需要您使用javascript创建post。JSON不仅重量更轻,而且在javascript中更容易制作。检查JSON解析 您可能想查看一下(jQuery版本)数据。如果PHP看到的查询字符串类似于http://blah.com/test.php?var[]=fo

我想发送一个用javascript构建的数组,数组中的选定值为multiple-select。有没有办法使用ajax将此数组发送到php脚本?

您可以使用XML或JSON发回服务器。您的javascript必须构造post,对于XML,这需要您使用javascript创建post。JSON不仅重量更轻,而且在javascript中更容易制作。检查JSON解析


您可能想查看一下(jQuery版本)数据。

如果PHP看到的查询字符串类似于
http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz
,它将自动生成一个名为
$var
的数组,其中包含foo、bar和baz。我认为您甚至可以在查询字符串的方括号中指定数组索引,它会将值粘贴在该索引中。您可能需要对括号进行URL编码。。。使用此功能的常用方法是创建一个名为“var[]”的HTML输入字段,因此只需执行浏览器通常在其中执行的操作即可。PHP文档中有一节介绍了通过请求的数组变量。

您可以按照Meador的建议创建一个数组并发送它: (以下代码是Mootooled,但在其他库/普通的旧JS中类似)

这将向php发送一个名为arrayItems的数组,可以通过$\u POST['arrayItems']访问该数组

echo $_POST['arrayItems'] ; 

将回显如下内容:array=>{[0]=>'first thing',[1]=>second thing}

您可以使用jQuery的$.post方法来实现这一点(例如):

Php将收到一个数组,该数组将是namemyphpvariable,它将包含myJavascriptArray值

是吗?

已更新为使用PHP语法发送数组。您可以使用以下命令将其切换为旧样式:

以下是synatax:

jQuery.ajaxSetting.traditional = true;
这是一个例子

$.ajax({    
 traditional: true,
 type: "post",
 url: myURL,
 dataType: "text", 
 data: dataToSend, //this will be an array eg. 
 success: function(request) {
  $('#results').html(request);
 }  // End success
 }); // End ajax method

只需添加一些信息,我可以在上找到这条建议的原型版本,我发现这是最好的答案,因为它不特别适用于任何javascript框架。甚至不必是XML或JSON,您可以发布CSV字符串或任何东西JSON-PHP库fuzzymonk暗示的内容已经过时,并且PHP中已经有了更快的实现。有关json_编码和json_解码功能,请参阅手册。+1。非常感谢!我一直在想怎么做。
jQuery.ajaxSetting.traditional = true;
$.ajax({    
 traditional: true,
 type: "post",
 url: myURL,
 dataType: "text", 
 data: dataToSend, //this will be an array eg. 
 success: function(request) {
  $('#results').html(request);
 }  // End success
 }); // End ajax method