Вопрос по ajax, forms, serialization, jquery – jquery form.serialize и другие параметры

96

Можно ли отправитьform.serialize() объект и другие параметры с одним$.ajax() запрос?

Пример:

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

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

Спасибо

Ваш Ответ

6   ответов
-2

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

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

и получить значение с помощью $ _REQUEST ['значение' 'ИЛИ $ _GET [' идентификатор & apos;]

0

используя 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()
}
7

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

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

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

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

вы можете попробовать это

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);

 ,   }
});
200

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

$.    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}
Большое спасибо брат кокос
спасибо, ты сэкономил мое время
@Falcon Что ты имеешь в видуcoconut здесь?
@ Shafizadeh Это рифма (много - кокос)
@ Адам О, я вижу ..
66

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

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

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

Да намного лучше
Это лучший способ, безусловно. Принятый ответ является грязным и никогда не должен использоваться в любом производственном приложении.
Если мы говорим о производственной среде, то ни один из этих ответов не должен использоваться.form должна содержать всю информацию (в скрытых полях, если необходимо), чтобы ее можно было сериализовать за один вызов. Таким образом, если JS отключен или происходит сбой, отправка формы должна по-прежнему иметь отказоустойчивость и включать все данные при отправке.
Мне нравится этот. Это означает, что мне не нужно смотреть на некрасивую строку запроса!

Похожие вопросы