【问题标题】:send a form with serialize() function and extra data in ajax()在 ajax() 中发送带有 serialize() 函数和额外数据的表单
【发布时间】:2015-07-19 22:42:43
【问题描述】:

我正在为 CI3 中的一家公司编写网页,但我遇到了另一个问题。 我需要向wizard.php(控制器)发送一个序列化表单和一个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 是一个属性,它具有值,但是,我将值放在另一个函数中。是否可以将值添加到序列化表单?或者如何同时发送序列化表单和变量?

【问题讨论】:

标签: javascript php jquery ajax serialization


【解决方案1】:

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

 data: $("#period-form").serialize() + '&idCompany=' + idCompany

【讨论】:

    【解决方案2】:
    var data = $('#period-form').serializeArray();
    data.push({ name: "<somename>", value: "<somevalue>" });
    

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

    【讨论】:

    • 数据不需要是数组吗? var data = [$('#period-form').serializeArray()];
    • @SethMcClaine serializeArray 返回一个数组。
    • 啊……有道理。 (我没有注意到 Array 部分)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多