Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 post方法上通过表单序列化数据传递附加数据 下面是我在ajax帖子中使用的代码 $(document).ready(function() { var additional_data=$("#extra_data").val(); $.ajax({ type: 'POST', url: 'send_mail.php', data: frm.serialize(), suc

如何在ajax post方法上通过表单序列化数据传递附加数据

下面是我在ajax帖子中使用的代码

   $(document).ready(function()
     {
       var additional_data=$("#extra_data").val();
        $.ajax({
        type: 'POST',
        url: 'send_mail.php',
        data: frm.serialize(),
        success: function (data) {
            alert(data);
        }
    });
    });

在这里,如何使用
序列化
表单数据传递
附加的\u数据
,您需要将元素推送到现有的序列化数据

var frmData = frm.serialize();
frmData.push({name: nameofthevariable, value: valueofthevariable});
frmData.push({name: nameofthevariable2, value: valueofthevariable2});
frmData.push({name: nameofthevariable3, value: valueofthevariable3});
$(document).ready(function()
     {
       var additional_data=$("#extra_data").val();
        $.ajax({
        type: 'POST',
        url: 'send_mail.php',
        data: frmData,
        success: function (data) {
            alert(data);
        }
    });
    });
serialize()
创建表单的查询字符串。因此,您可以在其中附加其他参数

$(document).ready(function()
     {
       var additional_data=$("#extra_data").val();
        $.ajax({
        type: 'POST',
        url: 'send_mail.php',
        data: frm.serialize()+'&param1='+value1+'&param2='+value2,
        success: function (data) {
            alert(data);
        }
    });
    });
来自jQueryAPI文档

The .serializeArray() method creates a JavaScript array of objects

The .serialize() method creates a text string in standard URL-encoded notation.
我认为要使用
push
,我们需要使用
serializeArray

尝试使用

var frmData = frm.serializeArray();
frmData.push({name: "name", value: "test"});


$(document).ready(function()
     {
       var additional_data=$("#extra_data").val();
        $.ajax({
        type: 'POST',
        url: 'send_mail.php',
        data: frmData,
        success: function (data) {
            alert(data);
        }
    });
    });
serializearray()可用于发送其他参数。用于发送附加参数的PFB代码

var request = $('form').serializeArray();
request.push({name: "kindOf", value: "save"}); 
Ajax调用

$.ajax({

                    url: "/ST/SubmitRequest",
                    dataType: "json",
                    //contentType: "application/json",
                    type: "POST",
                    data: request,
                    //data: r1,
                    success: function (response) {
                        //Setinterval();
                        //alert("Done...!");
                    },
                    failure: function (response) {
                        alert(response.responseText);
                    },
                    error: function (response) {
                        alert(response.responseText);
                    }
                }); 

您好,我使用了您的代码,但它抛出了错误
ReferenceError:id\u数组未定义
我的代码是
var frmData=frm.serialize();push({name:id\u数组,value:extra\u data})
应该是frmData.push({name:'id_array',value:extra_data});观察id_数组周围的单引号。出现此错误
TypeError:frmData.push不是一个函数
它应该可以工作。请看这里的答案:@AshokSri很乐意帮忙:)