如何用多个输入的值填充AJAX?

时间:2016-12-14 22:02:21

标签: javascript jquery ajax

所以我有一个AJAX函数,我希望用特定的类搜索每个元素,获取它的值并以正确的格式将它添加到AJAX中。这可能吗?

我有这个AJAX功能:

function sendOrders(button) {
    $.ajax({
        url: "external_file.php",
        method: "POST",
        data: {
            /*Here I need to add the data*/
            GameID: "'.$_SESSION['GameID'].'",
            Round: "'.$round.'",
            UserID: "'.$_SESSION['UserID'].'",
        }
    }).done(function( msg ) {
        $("#DEBUG").html(msg);
    }); 
};

我需要使用class =" order"从页面上的隐藏类型输入中收集数据。

我知道我可以使用jquery按类访问每个元素,但我不知道如何在已经编写的时候将属性添加到我的AJAX中。这些元素的数量是可变的,它们具有非重复的id,类是相同的。输入看起来像这样:

<input class="order" type="hidden" name="some_name" id="some_id" value="some_value">

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

根据我的理解,您希望使用从类输入的输入中获得的几个不同值来进行ajax调用吗?

假设您只想添加这些字段中的值,您可以做一些非常简单的事情:

首先,使用附加输入变量

更新ajax函数
function sendOrders(button, val) {
$.ajax({
    url: "external_file.php",
    method: "POST",
    data: {
        value : val,
        GameID: "'.$_SESSION['GameID'].'",
        Round: "'.$round.'",
        UserID: "'.$_SESSION['UserID'].'",
    }
}).done(function( msg ) {
    $("#DEBUG").html(msg);
}); 
};

然后,要从所有'order'类输入中获取数据,可以使用Jquery的'each'函数。例如,如果您想要每个输入的值,您可以在每个函数中使用新的sendOrder函数:

$('.order').each(function(){
    sendOrder(buttonId, $(this).val())
});

不太确定你在ajax函数中如何使用'button',但我认为它与你的保存或提交按钮相关联,所以buttonId将是该按钮的id。这将使用类顺序迭代所有输入,并使用这些值进行ajax调用。

如果您使用该按钮作为提交,您可以从ajax函数中一起取出它,并且具有以下内容:

function sendOrders(val) {
$.ajax({
    url: "external_file.php",
    method: "POST",
    data: {
        value : val,
        GameID: "'.$_SESSION['GameID'].'",
        Round: "'.$round.'",
        UserID: "'.$_SESSION['UserID'].'",
    }
}).done(function( msg ) {
    $("#DEBUG").html(msg);
}); 
};
$('#buttonId').click(function(){
    $('.order').each(function(){
        sendOrder(buttonId, $(this).val())
    });
 });

答案 1 :(得分:0)

创建数据对象,遍历所有输入,并将值添加到对象。

function sendOrders(button) {
    var data = {
        GameID: "'.$_SESSION['GameID'].'",
        Round: "'.$round.'",
        UserID: "'.$_SESSION['UserID'].'",
    };
    $(button).closest("form").find("input[type=hidden]").each(function() {
        data[this.name] = this.value;
    });
    $.ajax({
        url: "external_file.php",
        method: "POST",
        data: data
    }).done(function( msg ) {
        $("#DEBUG").html(msg);
    }); 
};