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

时间:2015-05-08 22:11:55

标签: javascript php jquery ajax serialization

我正在为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是一个属性,它有值但是,我把值放在另一个函数中。是否可以为序列化表单添加值?或者我如何同时发送序列化表格和变量?

2 个答案:

答案 0 :(得分:2)

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

$array1 = ['judas', 'john', 'michael'];

$array2 = ['fernando', 'jsamine', 'sam', 'walter'];

$array3 = ['judas', 'john', 'mike', 'steve'];

foreach ([$array1, $array2, $array3] as $arr) {
    foreach ($arr as $values) {
        ...
    } 
}

答案 1 :(得分:1)

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

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