您的位置:首页技术文章
文章详情页

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

浏览:97日期:2022-06-08 17:00:28

问题描述

我在学习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:好长
相关文章: