登录

请教:ajax提交数据为什么传不到控制器呢?

我在学习Peter.zhu老师的《最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上**班课)》的时


候,其中第“10-3用户注册功能的初步实现”节,为什么我的ajax提交数据不能传到控制器呢?


register.html代码为:


{include file="public:header" /}


{include file="public:nav" /}




<div class="row">


<div class="col-md-8">


<div class="page-header">


  <h2>用户注册</h2> 


</div>






<form class="form-horizontal" method="post" id="login" >


  <div class="form-group">


    <label for="inputEmail1" class="col-sm-2 control-label">用户名:</label>


    <div class="col-sm-10">


      <input type="text" name="name" class="form-control" id="inputEmail1" 


placeholder="UserName">


    </div>


  </div>




    <div class="form-group">


    <label for="inputEmail2" class="col-sm-2 control-label">邮箱:</label>


    <div class="col-sm-10">


      <input type="text" name="email" class="form-control" id="inputEmail2" 


placeholder="Email">


    </div>


  </div>




    <div class="form-group">


    <label for="inputEmail3" class="col-sm-2 control-label">手机号:</label>


    <div class="col-sm-10">


      <input type="text" name="mobile" class="form-control" id="inputEmail3" 


placeholder="MobileNumber">


    </div>


  </div>




    <div class="form-group">


    <label for="inputEmail4" class="col-sm-2 control-label">密码:</label>


    <div class="col-sm-10">


      <input type="password" name="password" class="form-control" id="inputEmail4" 


placeholder="Password">


    </div>


  </div>   




   <div class="form-group">


    <label for="inputEmail5" class="col-sm-2 control-label">确认密码:</label>


    <div class="col-sm-10">


      <input type="password" name="password_confirm" class="form-control" id="inputEmail5" 


placeholder="Password Confrim">


    </div>


  </div>




  <div class="form-group">


    <div class="col-sm-offset-2 col-sm-10">


      <button type="submit" class="btn btn-primary" id="register">注册</button>


    </div>


  </div>


</form>




</div>




<script type="text/javascript">


  $(function(){


    $('#register').on('click',function(){


      //用ajax提交用户信息 


      $.ajax({


        type: 'post',


        url: "{:url('insert')}",


        data: $('#login').serialize(),


        dataType: 'json',


        success: function(data){


          switch (data.status)


          {


            case 1:


              alert(data.message);


              window.location.href = "{:url('index/index')}";


            break;


            case 0:


            case -1:


              alert(data.message);


              window.location.back();


            break;


          }




        }


      })


  })


  })


</script>  




{include file="public:right" /}


{include file="public:footer" /}


控制器index/User的代码为:


<?php




namespace app\index\controller;




use app\common\controller\Base;


use think\facade\Request;


use app\common\model\User as UserModel;




class User extends Base


{


// 注册页面


public function register()


{


$this->assign('title','用户注册');


return $this->fetch();


}




public function index()


{


echo 'dfdssfsdf';


}




//处理用户提交的用户信息


public function insert()


{


echo "<script type='text/javascript'>alert('insert被执行');</script>";


// echo "dfsdfsdf";


if(Request::isAjax()){


// 验证数据


// $this->error("请求类型错误",'register');


$data = Request::post();//得到要验证的数据


$rule = 'app\common\validate\User';//自定义的验证规则


//开始验证 


$res=$this->validate($data,$rule);


if (true!==$res){ //false


return ['status'=> -1,'message'=>$res];


}else  {


if(UserModel::create($data))


{


return ['status'=>1,'message'=>'恭喜,注册成功'];


}


else


{


return ['status'=>0,'message'=>'注册失败,请检查'];


}


}//true


// 使用模型来创建数据


// 获取用户通过表单提交过来的数据


// $data=Request::except('password_confirm','post');


// $this->success($data,'index/index/index');


}


else


{


$this->error("请求类型错误",'index');


}


}


}


现象为在注册页面点击“注册”按钮后,页面刷新后仍为注册页面,没有任何错误提示,这是为什么呢


,一个星期也没找到问题,谢谢各位老师解答!!!


# PHP
清晨的粥 清晨的粥 1654 天前 1015 次浏览

全部回复(3) 我要回复

  • 卢小强

    卢小强2019-09-19 15:52:06

    data为什么是login不应该是form表单吗

    回复
    0
  • 清晨的粥

    form表单的id是login

    清晨的粥 · 2019-09-20 08:22:56
  • k

    k2019-09-18 15:22:24

    好长

    回复
    0
  • 取消 回复 发送