【发布时间】:2015-09-21 02:42:29
【问题描述】:
表格:
<form action="" id="register" method="post">
<input type="text" placeholder="eg. John">
<input type="text" placeholder="eg. Appleseed">
<input type="text" placeholder="youremail@domain.com">
</form>
JS:
$('form#register').on('submit',function (e) {
$.ajax({
url: 'submit.php',
cache: false,
type: 'POST',
context: this,
data : $(this).serialize(),
success: function(json) {
console.log("json: " + json);
}
});
e.preventDefault();
});
PHP:
$formData = json_encode($_POST);
echo print_r($formData,1);
...填写表单并点击提交后,它确实提交表单没有错误,但返回的数据(JSON)为空:
json: []
我做错了什么?
【问题讨论】:
-
你需要做一些基本的调试。查看开发人员工具的“网络”选项卡。查看发送到
submit.php的请求。它是否包含您期望的表单数据?看看回复。它是否包含您期望的数据? -
使用开发者工具网络标签。检查哪些数据提交给服务器,哪些数据从服务器返回。
-
我能够重现这一点的唯一方法是,如果表单中没有可序列化的数据(您尚未与我们共享)。
-
Chrome 中的网络标签显示:
Request URL:http://localhost:5757/submit.php Request Method:POST Status Code:200 OK -
哦,尝试将 name 属性也设置为您的 HTML 标签!
标签: javascript php jquery ajax json