2015-05-08 5 views
0

Я программирую веб-страницу для компании в CI3, и у меня есть еще одна проблема. Мне нужно отправить в wizard.php (контроллер) сериализованную форму и переменную javascript, но, я думаю, что я не могу отправить 2 переменных одновременно, вот мой код.отправить форму с функцией serialize() и дополнительные данные в ajax()

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 - это атрибут, он имеет значение, но я поместил значение в другую функцию. возможно добавить значения в сериализованную форму? или как я могу отправить сериализованную форму и переменную одновременно?

+0

Есть несколько идей о том, как это сделать, но еще один вариант - включить дополнительную переменную в скрытый ввод внутри формы. –

+0

Возможный дубликат [Как добавить данные через $ .ajax (serialize() + дополнительные данные), как это] (http://stackoverflow.com/questions/4406348/how-to-add-data-via-ajax-serialize-extra-data-like-this) –

ответ

2

Функция сериализации просто создает строку запроса URL из всех элементов формы. Таким образом, вы можете вручную добавить переменную в результате функции сериализации(), как это:

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

Вы можете использовать кнопочный метод, чтобы добавить больше пар имя - значение.

+0

Не нужны ли данные массив? 'var data = [$ ('# period-form'). serializeArray()];' –

+0

@SethMcClaine 'serializeArray' возвращает массив. – Barmar

+0

Ах ... имеет смысл. (Я не заметил часть массива) –

Смежные вопросы