我已经研究了几个类似的答案,但是我找不到任何能够显示如何发送两个数组,和字符串。
我发现.serialize
和.serializeArray
应该允许我构造我需要将表单数据和数组发送到我的PHP脚本所需的字符串,但我无法理解使用它们的语法这些功能在一起。
我的表格很简单:
<form id="email-input">
<input type="email" name="user-mail" />
</form>
我希望使用AJAX提交,并将和形式的值发送到我的PHP脚本中,名为basketData
的javascript数组。
$.ajax({
type: "POST",
url: "scripts/send-mail.php",
data: {$("#email-input").serialize(),basketData.serializeArray()}
success: function(data)
{
console.log(data);
}
});
我知道上面的语法完全不正确,但我无法弄清楚如何通过这个函数传递多个数据值。
答案 0 :(得分:0)
<强> jQuery的:强>
$.ajax({
type: "POST",
url: "scripts/send-mail.php",
data: {
email: $('input[name="user-mail"]').val(),
basketData: basketData
}
success: function(data) {
console.log(data);
}
});
<强> PHP:强>
$email = $_POST['email'];
$basketData = $_POST['basketData'];
答案 1 :(得分:0)
serializeArray
用于将包含表单的jQuery对象转换为结构化数据,作为将其转换为序列化字符串的前体。直接调用它很少有用,并且无法在数组上调用(otherData:basketData.serializeArray()}
将抛出一个数组,因为serializeArray
未定义,因为basketData
不是jQuery对象) 。
serialize
用于将包含表单的jQuery对象转换为表单编码数据的字符串。它非常适合处理复杂的表格。当您想要修改数据时,它会变得有些繁琐。
忘记使用它们中的任何一个。
data
的{{1}}参数接受一个JavaScript对象作为其值,然后jQuery将使用PHP的复杂数据结构约定将其编码为表单数据(因为你说的很好用)你的数组不是平的,你使用的是PHP。)
只需将表单控件的数组和值放入数据对象中。
.ajax