Форма 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() + "¶meter1=value1¶meter2=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, чтобы сделать то же самое.