关于php从前端取值的问题

各位大佬,小弟新学php,如图所示,同样的变量$name ,用echo输出则没有值,而下方从数据库可以查到输入的值,请问这是为什么?,详细问题,下附代码
clipboard.png
这是前端页面的ajax请求截图
clipboard.png

阅读 6.6k
12 个回答

post到后端的时候是个空值吗? 您用echo 为空时就看不到的,您用var_dump($_POST)这样打印一下吧

前面 那个 name 是从表单里取的(即:用户提交的), 后面那个 name 是来自数据库里(而 name 是数据库的一个字段)

前面 那个 name 是可以随便命名的。比如 $a = $_POST['name']; var_dump($a); 如果为空,说明用户在提交表单的时候,没有输入。

后面 那个 $row['name'] 是不能乱写的。比如:你写个 $row['abc'] 就没有值了。因为数据表里没有 abc 这个字段

唔 推荐jquery一个更简便的ajax post方法

$.post(uri,{'argu':data},function(res){
...你的回调操作...
})

这个方法更简洁哦

你$name的赋值 是把 post的name 赋值过去的 所以 你想要输出的name 又数据 需要先执行post (也就是说这个处理页面onlinedb.php 直接访问是不会有输出的)
然后当你执行了 ajax操作之后。 post过去了个数组 这时候 如果你 echo $name; 这行没有删除的话应该可以在网络状态里看到输出了东西 如图

clipboard.png

你试试

...
你都没post过去值, 怎么会有值呢?

1.JS中查看inputname是否有数据哦。
2.浏览器debug中看下请求的onlinedb.php中name是否有数据

错误级别太高
头部加一句
error_reporting(0);

可以使用

>var_dump($name);die();

截断一下看看!

你最上边打印的是本次传入的值,
下边遍历数据库打印的,你怎么知道哪条是本次生成的?

逻辑就有错误。数据库查询的值,不是本次提交的值,是以前插入的

不要写 select *

没有是正常的,你echo的name是你从前端表单提交的数据,但是你下方的$name 是从数据库查询得到的,由于你sql语句为 select * from 表名,也就是说,无论你前面能不能得到$name 只要数据库能连接起来,且数据库有数据,这个$name 肯定能从数据库查到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题