请教: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 appindexcontroller;
use appcommoncontrollerBase;
use thinkfacadeRequest;
use appcommonmodelUser 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 = 'appcommonvalidateUser';//自定义的验证规则
//开始验证
$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');
}
}
}
现象为在注册页面点击“注册”按钮后,页面刷新后仍为注册页面,没有任何错误提示,这是为什么呢
,一个星期也没找到问题,谢谢各位老师解答!!!
问题解答
回答1:data为什么是login不应该是form表单吗
回答2:好长相关文章:
1. jupyter-notebook - Mac下启动jupyter notebook后没有Python的选项?2. 这是什么情况???3. 百度地图api - Android 百度地图点击线路图的问题?4. javascript - 求一款靠谱点的移动端图片查看器插件,老司机速进!5. 数据库创建失败6. mysql sql where id in(25,12,87) 结果集如何用按照 25 12 87排序?7. 前端 - 提问关于background-image不显示的问题8. javascript - 如何在外部点击,跳转到网页后,显示指定的模块。9. css3的transform问题10. javascript - 在top.jsp点击退出按钮后,right.jsp进行页面跳转,跳转到login.jsp

网公网安备