如何通过ajax将数组发送到php?
答
您可以张贴回用XML或JSON服务器。你的JavaScript将不得不构建帖子,在XML的情况下,将需要你在JavaScript中创建它。 JSON不仅更轻巧,而且更易于在JavaScript中制作。查看JSON-PHP解析JSON。
答
IIRC,如果PHP看到的查询字符串看起来像http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz
,它会自动创建一个名为$var
的数组,其中包含foo,bar和baz。我想你甚至可以在查询字符串的方括号中指定数组索引,并将该值粘在该索引中。您可能需要对括号进行URL编码...使用此功能的常用方法是创建名称为“var []”的HTML输入字段,因此只需执行浏览器通常在其中执行的任何操作即可。 PHP文档中有关于通过请求的数组变量的部分。
答
您可以创建一个数组,并把它作为Meador推荐: (下面的代码是Mootooled,但在其他图书馆类似的/纯*S)
myArray.each(function(item, index) myObject.set('arrayItems['+index+']', item);
myAjax.send(myObject.toQueryString());
,将发送到PHP称为arrayItems数组,这可以通过$ _POST [ 'arrayItems']被访问
echo $_POST['arrayItems'] ;
会响应是这样的:数组=> {[0] => '首先',[1] =>第二件事情}
答
你可以做到这一点与$。员额的jQuery(例如)的方法:
var myJavascriptArray = new Array('jj', 'kk', 'oo');
$.post('urltocallinajax', {'myphpvariable[]': myJavascriptArray }, function(data){
// do something with received data!
});
PHP将接受将被命名myphpvariable一个数组,它将包含myJavascriptArray值。
那个?
答
jQuery 1.4被更新为使用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框架。 – Lucia 2008-11-18 19:00:35
甚至不一定是XML或JSON,您可以发布CSV字符串或任何其他内容 – annakata 2009-01-08 12:22:13
JSON-PHP库fuzzymonk暗示已过时,并且更快的实现已经在PHP中。请参阅json_encode和json_decode函数的手册。 – 2009-01-08 12:37:02