为什么通过ajax提交后显示未定义?

m573556796 2016-11-09 09:12:28
提交后 后台通过$name=I('name')和$pw=I('pw');接收数据 但是echo出来后显示的是undefined 这是为什么?返回的也一直是0,是ajax部分的代码不对吗?F12查看时也没错啊

<script type="text/javascript">
function ajax(url,data,data2,funsucc){
var oAjax=new XMLHttpRequest();
oAjax.open('post',url,true);
oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
oAjax.send("name="+data+"&pw="+data2);
oAjax.onreadystatechange=function(){
if(oAjax.readyState==4){
if(oAjax.status==200){
funsucc(oAjax.responseText);
}
}
}
}
</script>
<script type="text/javascript">
window.onload=function(){
var oBtn1=document.getElementById('btn1');
var oName=document.getElementById('name');
var oPw=document.getElementById('pw');
var oDiv5=document.getElementById('div5');
oBtn1.onclick=function(){
oV1=oName.value;
oV2=oPw.value;
ajax("{:U('login/ajax')}",oV1,oV2,function(str){
oDiv5.innerHTML=str;
});
}
}
</script>


public function ajax(){
$user=M('user');
$name=I('name');
$pw=I('pw');
echo $pw; //提示未定义
echo $name; //提示未定义
$res1=$user->where("username='$name' AND password='$pw'")->select();
if($res1){
$res=1;
}else{
$res=0;
}
$this->ajaxReturn($res);
}
...全文
625 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihefe 2016-11-10
  • 打赏
  • 举报
回复
可以先用get 方式请求看看有没有接收到参数,在检查js是否正确 get方式 URl列如: http://localhost/index.php/login/ajax/name/XXX/pw/XXX
xuzuning 2016-11-10
  • 打赏
  • 举报
回复
多半又是一个用 phpstorm 的
m573556796 2016-11-10
  • 打赏
  • 举报
回复
引用 3 楼 fdipzone 的回复:
echo $_POST['name']; 看看有什么 如果没有数据,就是你js写错了。
效果还是一样的 但是js也没有错误啊
傲雪星枫 2016-11-10
  • 打赏
  • 举报
回复
echo $_REQUEST['name']; 看看有什么 如果没有数据,就是你js写错了
傲雪星枫 2016-11-09
  • 打赏
  • 举报
回复
echo $_POST['name']; 看看有什么 如果没有数据,就是你js写错了。
m573556796 2016-11-09
  • 打赏
  • 举报
回复
引用 1 楼 fdipzone 的回复:
thinkphp获取方法你写错了 I('变量类型.变量名',['默认值'],['过滤方法'])

$name=I('name');
$pw=I('pw');
改为

$name = I('post.name');
$pw = I('post.pw');
参考:http://www.thinkphp.cn/document/308.html
不管是POST提交或者GET提交 TP都可以直接用I()接收数据 不用写成这样I('post.pw')来接收数据 所以我写成这样试了一下 还是不行
傲雪星枫 2016-11-09
  • 打赏
  • 举报
回复
thinkphp获取方法你写错了 I('变量类型.变量名',['默认值'],['过滤方法'])

$name=I('name');
$pw=I('pw');
改为

$name = I('post.name');
$pw = I('post.pw');
参考:http://www.thinkphp.cn/document/308.html

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧