Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用来自多个输入的值填充AJAX?_Javascript_Jquery_Ajax - Fatal编程技术网

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

Javascript 如何用来自多个输入的值填充AJAX?,javascript,jquery,ajax,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: "'.$

所以我有一个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);
    }); 
};
$('.order').each(function(){
    sendOrder(buttonId, $(this).val())
});
我需要使用class=“order”从页面上的隐藏类型输入中收集数据

我知道我可以用jquery按类访问每个元素,但我不知道如何在已经编写好的AJAX中添加属性。这些元素的数量是可变的,并且它们具有非重复ID,类是相同的。输入如下所示:

<input class="order" type="hidden" name="some_name" id="some_id" value="some_value">
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())
    });
 });


有人能帮忙吗?

据我所知,您想使用从类顺序输入中获得的几个不同值进行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函数:

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);
    }); 
};
$('.order').each(function(){
    sendOrder(buttonId, $(this).val())
});
我不太确定您在ajax函数中是如何使用“button”的,但我假设它与您的“保存”或“提交”按钮相关联,因此buttonId将是该按钮的id。这将按类顺序迭代所有输入,并使用这些值进行ajax调用

如果将按钮用作提交,则可以从ajax函数中将其全部取出,并具有如下功能:

<input class="order" type="hidden" name="some_name" id="some_id" value="some_value">
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())
    });
 });

创建数据对象,循环所有输入,并向对象添加值

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);
    }); 
};

因此,您不知道要向AJAX添加多少输入值?您可以将这些隐藏元素添加到
表单
,并将其
名称
属性设置为与数据中所需的键相同,这有点疯狂。然后,在发布时,只需对
数据使用
$(form).serializeArray()
(因为它看起来好像没有使用JSON)。这正是创建HTML表单的目的。我同意只需将它们放在
表单中
,然后序列化它们
数据:$(“#我的表单”)。serialize()
。最简单的解决方案。如果我理解正确,您希望使用不同的AJAX调用分别发送每个输入值。如果这是真的,我必须编辑external_file.php才能使用它。我想我会使用上面评论中的提示,但无论如何,非常感谢。