AJAX不使用$(form).serialize()发布值

时间:2017-01-08 17:24:25

标签: javascript php jquery json ajax

我有一个表单,我试图通过AJAX提交。我传递数据的最简单方法是使用$("#myForm").serialize(),但在执行此操作时,我发布到的页面不会接收数据。

这是我的表格:

<form id="myForm">
    <input name="field" id="field">
    <button id="submitBtn" type="button">
</form>

这是我的职责:

$("#submitBtn").click(function(){

    alert($("#myForm").serialize()) //For testing – does alert "field=value"

    var post = $.post("actions.php", $("#myForm").serialize());
    post.done(function(d){alert(d)}); //Only alerts [PHPSESSID]

    var post = $.post("actions.php", {field:"fieldVal"});
    post.done(function(d){alert(d)}); //Alerts [PHPSESSID] and ['field']

});

这是我的整个actions.php文件:

<?php
print_r($_REQUEST);
exit();

为什么将值传递为JSON有效,但.serialize()不是&#39; t ??

2 个答案:

答案 0 :(得分:0)

看起来我只需要将序列化表单作为变量传递,而不是在$.post()函数中将其序列化。如此:

var postData = $("#myForm").serialize()

var post = $.post("actions.php", postData);
post.done(function(d){alert(d)});

不确定为什么它在外部建立而不在函数内部时起作用,可能是冲突问题。无论如何,感谢大家

答案 1 :(得分:-1)

改为使用serializeArray()https://api.jquery.com/serializeArray/