为什么我不能通过ajax以相同的形式发布数组和单值?

时间:2014-11-25 11:06:17

标签: php jquery ajax forms post

我有这个脚本:

<script>
function send_mail() {
$.ajax({
type: "POST",
url: "/software/hsn/send_mail.php",
data:  $('[name="check_id[]"]').serialize(), // post array
{email : $("#email").val()} // post single value

success: function() {

// content
}
}
</script>

当我发布表单时,只发布了一个控件。例如:

$('[name="check_id[]"]').serialize(), // post array

{email : $("#email").val()} // post single value

通常情况下,即使我改变了位置,最后一次控制仍然有效。

谢谢大家!

4 个答案:

答案 0 :(得分:1)

您的数据语法为 错误 。 数据可以是 PlainObject或String或Array ,但不能是多个逗号分隔值。 正确的数据语法是

data: {name1: value1, name2: value2},

所以你的语法应该是

{name : $('[name="check_id[]"]').serialize(),email : $("#email").val()},

查看jQuery ajax文档here

答案 1 :(得分:0)

更改数据:

 $('[name="check_id[]"]').serialize(), // post array
{email : $("#email").val()}

data: {check_id: $('[name="check_id[]"]').serialize(),email : $("#email").val()}

它将采用所有的价值观。 试试吧。

答案 2 :(得分:0)

您可以使用serializeArray

data: $('[name="check_id[]"]')
      .add('#email') // add the element to the collection
      .serializeArray() // serialize now

答案 3 :(得分:0)

谢谢大家,特别感谢吐温先生。我的问题已经解决了。

我使用这个脚本:

data:  $('[name="check_id[]"]').serialize() + "&email=" + $("#email").val(),

它奏效了。