Форма jQuery: serialize() и другие параметры

Можно ли отправить элементы формы (сериализованные с .serialize() метода .serialize()) и другие параметры с помощью одного запроса AJAX?

Пример:

$.ajax({
    type : 'POST',
    url : 'url',
    data : {
        $('#form').serialize(),
        par1 : 1,
        par2 : '2',
        par3: 232
    }
}

Если нет, то какой лучший способ отправить форму вместе с другими параметрами?

Спасибо

Ответ 1

serialize() эффективно превращает значения формы в действительную последовательность запросов, поэтому вы можете просто добавить к строке:

$.ajax({
    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}

Ответ 2

В качестве альтернативы вы можете использовать form.serialize() с $.param(object) если вы храните свои параметры в некоторой переменной объекта. Использование будет:

var data = form.serialize() + '&' + $.param(object)

См. Http://api.jquery.com/jQuery.param для дальнейшего использования.

Ответ 3

Я не знаю, но ни один из вышеперечисленных не работал у меня. Тогда я использовал это, и он работал:

В виде сериализованного массива он хранится как пара значений ключа

Мы нажали новое значение или значения здесь в переменной формы, и теперь мы можем передать эту переменную прямо сейчас.

var form = $('form.sigPad').serializeArray();
var uniquekey = {
      name: "uniquekey",
      value: $('#UniqueKey').val()
};
form.push(uniquekey);

Ответ 4

Если вы хотите отправить данные с сериализацией формы, вы можете попробовать это

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});

Ответ 5

Вы можете создать вспомогательную форму, используя jQuery, с содержимым другой формы, а затем добавьте в эту форму другие параметры, поэтому вам нужно всего лишь сериализовать ее в вызове ajax.

function createInput(name,value){
    return $('<input>').attr({
        name: name,
        value: value
    });
}
$form = $("<form></form>");
$form.append($("#your_form input").clone());
$form.append(createInput('input_name', 'input_value'));
$form.append(createInput('input_name_2', 'input_value_2'));
....

$.ajax({
    type : 'POST',
    url : 'url',
    data : $form.serialize()
}

Ответ 6

передать значение параметра, как этот

data : $('#form_id').serialize() + "&parameter1=value1&parameter2=value2"

и так далее.

Ответ 7

Я исправляю проблему с выражением; отправлять данные с помощью того же метода GET

$.ajax({
    url: 'includes/get_ajax_function.php?value=jack&id='+id,
    type: 'post',
    data: $('#b-info1').serializeArray(),

и получить значение с помощью $_REQUEST['value'] ИЛИ $_GET['id']

Ответ 8

Вы также можете использовать функцию serializeArray, чтобы сделать то же самое.