简化ajax对象

时间:2016-06-19 21:55:14

标签: javascript arrays ajax

我有这个函数将表单中的输入写入数据库,并且我试图简化ajax调用传递给php的数据。目前我有这个功能:

function writeDB(stage){
    var userData = $("#cacheDB").find("input").get();
    var ajaxData = []
    for (var n=0;n < userData.length; n++){
        item = {};
        item[userData[n].id] = userData[n].value;
        ajaxData.push(item);
    }

    $.ajax({
        url: "x.php",
        data: {ajaxData},
    });
}

发送此对象:

http://url.php?ajaxData[0][pageid]=1&ajaxData[1][input1]=John&ajaxData[2][input2]=Doe

我只想发送原始数据密钥,例如:

http://url.php?[pageid]=1&[input1]=John&[input2]=Doe

或者

http://url.php?pageid=1&input1=John&input2=Doe

它可以吗?我尝试了几种方法,但还没找到合适的方法。

1 个答案:

答案 0 :(得分:1)

我会尝试序列化表单而不是for循环。它基本上将表单中的所有输入字段作为JSON对象发送到服务器。

$.post('server.php', $('#theForm').serialize())

对于较大的表单,应该预先设置HTTP POST方法,可以发送复杂的对象。

点击此处获取更多帮助:jQuery AJAX submit form

希望你需要它。