通过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("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); });
所以你可以看到,我创建了一个带循环的数组,那时候一切都很好。 问题是当我尝试通过POST与JSON发送它。 我不知道这是不是最好的方法……
我试过没有JSON.stringify();
但是$_POST
仍然是空的
好像post没有发送,但我可以在控制台中看到已发送XHRpost请求。
尝试使用此代码并查看更改。
删除contentType: 'application/json', dataType: 'json'
并将var mydata = []
更改为var mydata = {}
你的ajax应该是这样的
$就({ 方法:“POST”, url:“q.php”, 数据:{'lol':mydata} }) .done(function(msg){ alert(“Data Saved:”+ msg); $( '#调试')HTML(MSG); });
你不必将你的mydata字符串化,因为你已经将它作为对象删除了。
希望能帮助到你