首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ajax和JavaScript,如何在不使用JQuery的情况下发布数组?

Ajax和JavaScript,如何在不使用JQuery的情况下发布数组?
EN

Stack Overflow用户
提问于 2015-12-26 05:11:56
回答 2查看 1.3K关注 0票数 5

我通过Ajax调用PHP函数:

代码语言:javascript
代码运行次数:0
运行
复制
var ajax = new XMLHttpRequest();
ajax.open("POST", "file.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status == 200){
        var returnVal = JSON.parse(ajax.responseText);

        // do stuff here //
    }
}   
ajax.send('term=' + javaScriptArray);

一切都很好,在发送单个值时,这是一个不错的选择,但当我尝试发布一个数组时,就会出现问题。

在我的PHP函数中,我检查POST变量是否是一个数组:

代码语言:javascript
代码运行次数:0
运行
复制
is_array($_POST['term']);

但它总是返回假的。

回音值会打印如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
value1,value2,value3

而是作为单个字符串而不是数组。

This SO thread的答案不是作为数组发送,而是作为多个不同的变量发送,并且使用GET:

代码语言:javascript
代码运行次数:0
运行
复制
ajax.open("GET","myserver.com/myfunction.php?var1=1&var2=2&var3=3",true);

我发送的数据在项目数中总是可变的,因此作为数组发送对我来说是最好的选择。对于我所做的工作来说,PHP中的简单is_array()要简单得多。

我看过设置多个变量:

代码语言:javascript
代码运行次数:0
运行
复制
for(var i = 0; i < argument.length; i++){
    postString += 'arg' + i + '=' + argument[i] + '&';
}
ajax.send(postString);

但这仍然没有真正实现我所尝试的目标(同样是多个变量)。

我还试着用相同的变量名发送它们:

代码语言:javascript
代码运行次数:0
运行
复制
ajax.send('arg=one&arg=two&arg=three');

但每一个连续的一次都会覆盖它的前身。

我对使用JQuery的解决方案不感兴趣。--我不需要整个库,这是我唯一需要的东西。

编辑1

我也想保留它为POST

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-26 05:22:45

若要将参数视为数组,则必须使用[]符号。

代码语言:javascript
代码运行次数:0
运行
复制
var postArray = new Array();
for(var i = 0; i < argument.length; i++){
    postArray[i] = 'arg[]=' + encodeURIComponent(argument[i]);
}
ajax.send(postArray.join('&'));
票数 7
EN

Stack Overflow用户

发布于 2015-12-26 05:23:28

您需要澄清PHP,因为它是您要发送的数组。您通常可以通过添加[]来做到这一点,就像在PHP中一样。因此,在您的示例中,尝试如下:

代码语言:javascript
代码运行次数:0
运行
复制
ajax.send('arg[]=one&arg[]=two&arg[]=three');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34468677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档