php - php 不回显 POST 数据
问题描述
我有以下 jQuery 脚本将表单数据发布到 php。我正在使用一个简单的 php 文件测试表单数据,以回显输入 post:datastring 的名字字段作为测试(我是使用 php 的新手,所以这就是我测试它的原因)。
<script type="text/javascript">
$("#btn_submit").on("click", function (event) {
event.preventDefault();
form_data = $('form').serialize()
var datastring = JSON.stringify({form_data});
console.log("Okay, I'm starting");
console.log(form_data);
console.log(datastring);
return $.ajax({
type: "POST",
url: "echo_test.php",
data: {post: datastring},
success: function (responseText) {
console.log(responseText);
},
error: function (error) {
console.log("Okay, I failed" + error);
}
});
});
简单的php文件:
<?php
echo 'Hello ' . htmlspecialchars($_POST["firstname"]) . '!';
?>
以下是 Firefox 开发者控制台的回应:
Okay, I'm starting
email_field=mj%40abc.com&firstname=mary&lastname=jones&comments=no+comment%0D%0A
{"form_data":"email_field=mj%40abc.com&firstname=mary&lastname=jones&comments=no+comment%0D%0A"}
最后它回响:
Hello !
所以 Hello 部分和感叹号被回显,但不是 firstname 字段。我可以看到它发布到 php 文件的数据字符串确实包含 firstname=mary,因此该字段中有一个值。
为什么名字字段不回显?
解决方案
您没有正确发布您的数据,试试这个:
$("#btn_submit").on("click", function (event) {
event.preventDefault();
form_data = $('form').serialize()
console.log("Okay, I'm starting");
console.log(form_data);
return $.ajax({
type: "POST",
url: "echo_test.php",
data: form_data,
success: function (responseText) {
console.log(responseText);
},
error: function (error) {
console.log("Okay, I failed" + error);
}
});
});
推荐阅读
- c++ - 尝试在 C++ 中打印字符串时出现“运行失败(退出值 -1,073,741,511,总时间:37 毫秒)”
- php - 在 WooCommerce 中选择“本地取货”时,将结帐字段设为可选
- vb.net - 十六进制到整数转换引发 system.overflow 异常
- python - 仅获取 HTML 标记中的顶级文本
- python - 如何使用 matplotlib 在 python 中叠加绘图
- php - Laravel - 如何将文件从本地存储移动到另一个存储?
- r - 如何在数据框列表上循环回归?
- r - 如何将值与日期匹配并在 R 中创建新列
- python - Python键盘模块 - 退出阻塞读取事件功能
- django - 减少数据库查询的数量,从模板中的 django“for loops”启动 - Django 网站非常慢