我有一个表单,我试图通过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 ??
答案 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/