我知道如何将整个表单传递给AJAX。
data: $(this).serialize()
但是,我不知道如何在表单外传递表单+值。
例如:
var id = $('[name="formid"]').attr("id");
var uniq = $('[name="formid"]').data('uniquecode');
data: {form: $(this).serialize(), id: id, uniq: uniq},
这样可行,但表单会变成查询字符串而不是数组。
Array ( [form] => fullname=&contactnum=&email=&source= )
应该是这样的:
Array ( [fullname] => [contactnum] => [email] => [source] => )
有人帮我做这个吗?感谢。
答案 0 :(得分:3)
如您所见 - serialize()
返回简单字符串,这就是为什么您可以将其与所需值连接起来的原因:
data: $(this).serialize() + "&id=" + id + "&uniq=" + uniq,
另一种解决方案是在表单上创建具有所需值的隐藏输入:
<input type="hidden" name="id" value="your value" />
<input type="hidden" name="uniq" value="your other value" />
然后他们也会serialize
d,而不做任何其他事情。
答案 1 :(得分:1)
您可以通过多种方式获得解决方案。 Serialize返回字符串,以便您可以连接为
data: $(this).serialize() + "&id=" + id + "&uniq=" + uniq,
您可以单独传递ajax中数据的值
var id = $('[name="formid"]').attr("id");
var uniq = $('[name="formid"]').data('uniquecode');
$.ajax({
url:'',
data : {
data : data,
id : id,
uniq : uniq,
},
});
您可以将隐藏字段用作
<input type="hidden" name="id" value="your value" />
<input type="hidden" name="uniq" value="your other value" />
如果你正在传递
data: {form: $(this).serialize(), id: id, uniq: uniq},
你可以使用parse_str
在php的后端获取数组