是否可以通过单个AJAX请求发送表单元素(使用.serialize()
方法序列化)和其他参数?
例:
$.ajax({
type : 'POST',
url : 'url',
data : {
$('#form').serialize(),
par1 : 1,
par2 : '2',
par3: 232
}
}
如果不是,将表单与其他参数一起提交的最佳方法是什么?
谢谢
是否可以通过单个AJAX请求发送表单元素(使用.serialize()
方法序列化)和其他参数?
例:
$.ajax({
type : 'POST',
url : 'url',
data : {
$('#form').serialize(),
par1 : 1,
par2 : '2',
par3: 232
}
}
如果不是,将表单与其他参数一起提交的最佳方法是什么?
谢谢
Answers:
serialize()
有效地将表单值转换为有效的查询字符串,因此您只需将其附加到字符串即可:
$.ajax({
type : 'POST',
url : 'url',
data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}
另外form.serialize()
,$.param(object)
如果将参数存储在某个对象变量中,则可以使用with 。用法是:
var data = form.serialize() + '&' + $.param(object)
有关更多参考,请参见http://api.jquery.com/jQuery.param。
form
应包含的所有信息(隐藏字段如有必要),以便它可以在一个单一的呼叫被序列化。这样,如果JS被禁用或失败,则表单提交仍应具有故障保护功能,并在发送时包括所有数据。
我不知道,但是以上都不对我有用,然后我用了它,它起作用了:
在表单的序列化数组中,将其存储为键值对
我们将新的一个或多个值推送到此处的形式变量中,然后就可以直接传递该变量了。
var form = $('form.sigPad').serializeArray();
var uniquekey = {
name: "uniquekey",
value: $('#UniqueKey').val()
};
form.push(uniquekey);
您可以使用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()
}
我用声明不足解决问题;使用url相同的GET方法发送数据
$.ajax({
url: 'includes/get_ajax_function.php?value=jack&id='+id,
type: 'post',
data: $('#b-info1').serializeArray(),
并通过$_REQUEST['value']
OR 获得价值$_GET['id']
您也可以使用serializeArray函数执行相同的操作。