在 ajax() 中发送带有 serialize() 函数和额外数据的表单

send a form with serialize() function and extra data in ajax()

我正在为 CI3 中的一家公司编写网页,但遇到了另一个问题。 我需要向 wizard.php(controller) 发送一个序列化表单和一个 javascript 变量,但是,我认为我不能同时发送 2 个变量,这是我的代码。

var idCompany =5;
$(document).on('submit', '#period-form', function(event) {
    event.preventDefault();
    $.ajax({
        url: '<?php echo base_url()?>wizard/insertPeriod/'
        type: 'POST',
        dataType: 'json',
        data: $("#period-form").serialize(),
        success : function (json) {
            $("#alert").append(json.response_alert);
        },
        error : function (xhre) {
            console.log(xhre);
        }
    })
});

如您所见,idCompany 是一个属性,它具有值,但是,我将值放在另一个函数中。是否可以将值添加到序列化形式?或者如何同时发送序列化表单和变量?

序列化函数只是从所有表单元素创建一个 URL 查询字符串。因此,您可以像这样手动将变量添加到 serialize() 函数的结果中:

 data: $("#period-form").serialize() + '&idCompany=' + idCompany
var data = $('#period-form').serializeArray();
data.push({ name: "<somename>", value: "<somevalue>" });

您可以使用 push 方法添加更多名称-值对。