通过jQuery AJAX POST发送JavaScript数组 [英] send JavaScript array through jQuery AJAX POST

查看:80
本文介绍了通过jQuery AJAX POST发送JavaScript数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要做的是将JavaScript数组发送到PHP文件。

这就是我得到的:

  var mydata = []; 
console.log(document.getElementsByTagName(input)[0] .name);
for(var i = 0; i< document.getElementsByTagName('input')。length; i ++){
mydata [document.getElementsByTagName(input)[i] .name] = document .getElementsByTagName( 输入)[I]。价值;
};
for(var i = 0; i< document.getElementsByTagName('select')。length; i ++){
mydata [document.getElementsByTagName(select)[i] .name] = document .getElementsByTagName( 选择)[I]。价值;
};
console.log(mydata);

$ .ajax({
方法:POST,
url:q.php,
数据:{'lol':JSON.stringify( mydata)},
contentType:'application / json',
dataType:'json'
})
.done(function(msg){
alert(保存数据:+ msg);
$('#debug')。html(msg);
});

正如你所看到的,我创建了一个带循环的数组,此时一切都很好。问题是当我尝试通过POST与JSON发送它。我不知道这是不是最好的方法...



我试过没有 JSON.stringify(); 但是 $ _ POST 仍然是空的



好像帖子没有发送,但我可以看到控制台已发送XHR发布请求。

解决方案

尝试使用此代码并查看更改。



删除

contentType:'application / json',
dataType:'json'



并将 var mydata = [] 更改为 var mydata = { }



你的ajax应该是这样的

 
$ .ajax({
方法:POST,
url:q.php,
数据:{'lol':mydata}
})
.done(function(msg){
alert(Data Saved:+ msg);
$('#debug')。html(msg);
});

你不必将你的mydata字符串化,因为你已经将它作为对象删除了。



<希望它有所帮助


What I want to do is send an JavaScript Array to a PHP file.
This is what I got:

var mydata = [];
        console.log(document.getElementsByTagName("input")[0].name);
        for (var i = 0; i < document.getElementsByTagName('input').length; i++) {
            mydata[document.getElementsByTagName("input")[i].name] = document.getElementsByTagName("input")[i].value;
        };
        for (var i = 0; i < document.getElementsByTagName('select').length; i++) {
             mydata[document.getElementsByTagName("select")[i].name] = document.getElementsByTagName("select")[i].value;
        };
        console.log(mydata);

        $.ajax({
            method: "POST",
            url: "q.php",
            data: {'lol': JSON.stringify(mydata)},
            contentType: 'application/json',
            dataType: 'json'
        })
        .done(function( msg ) {
            alert( "Data Saved: " + msg );
            $('#debug').html(msg);
        });

So as you can see, I create an array with a loop, at that moment all is fine. The problem is when I try to sent it through POST with JSON. I don't know if this is the best method...

I tried without JSON.stringify(); but the $_POST still empty

It seems like the post isn't sent, but I can see in the console the XHR post request has been sent.

解决方案

Try to use this code and see the changes.

remove the contentType: 'application/json', dataType: 'json'

And change var mydata = [] into var mydata = {}

your ajax should look like this

        $.ajax({
            method: "POST",
            url: "q.php",
            data: {'lol': mydata}
        })
        .done(function( msg ) {
            alert( "Data Saved: " + msg );
            $('#debug').html(msg);
        });

You dont have to stringify your mydata because you already decleared it as object.

Hope it helps

这篇关于通过jQuery AJAX POST发送JavaScript数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆