[英]serialize form data and add them to jquery $.post
$('#btnsave').click(function() {
var id = $('.nameact').attr('data-id');
var img = $('#imguser').attr('src');
var uname = $('#inpuname').val();
var pass = $('#inpass').val();
var canpublic = $('#selcanpublic').val();
var about = $('#txtabout').val();
$.post('btn-save.php', {id, img, uname, pass, canpublic, about}, function(data) {
console.log(data);
});
});
It works fine but because inpuname, inpass, selcanpublic, txtabout
are all elements of a form ( forma
) I wonder is it possible to serialize that data and add them to $.post
data? 它工作正常,但是因为inpuname, inpass, selcanpublic, txtabout
都是表单( forma
)的所有元素,所以我想知道是否可以序列化该数据并将其添加到$.post
数据中吗?
Something like this: 像这样:
$('#btnsave').click(function() {
var id = $('.nameact').attr('data-id');
var img = $('#imguser').attr('src');
$.post('btn-save.php', {id, img, $('#forma').serialize()}, function(data) {
console.log(data);
});
});
$('form').serialize()
generates a querystring with values. $('form').serialize()
生成带有值的查询字符串。 So when you serialize your form it will send the values as url parameters. 因此,当您序列化表单时,它将把值作为url参数发送。
It would generate as 它会生成为
http://example.com?id=value&img=value&uname=value&pass=value&canpublic=value&about=value
So there is one way you can send 所以有一种发送方式
var formData = $('#forma').serialize()+'&id='+idvalue +'&img='+imgValue;
$.post('btn-save.php', formData, function(data) {
console.log(data);
});
or you can serializeArray() to form. 或者您可以将serializeArray()形成。 It will create key-value
pair of form elements. 它将创建表单元素key-value
对。
var formData = $('#myForm').serializeArray();
formData.push({name: 'id', value: idValue});
formData.push({name: 'img', value: imgValue});
You can use FormData()
object. 您可以使用FormData()
对象。 It stores form values. 它存储表单值。
EDIT you can use FormData()
only with option processData: false,
编辑您只能将FormData()
与选项processData: false,
$('#btnsave').click(function () {
var formData = new FormData($('#forma'));
$.ajax({
url: 'btn-save.php',
data: formData,
type: "POST",
processData: false,
success: function(data) {
console.log(data);
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.