求助!我form的ajax方式提交不了表单

浏览:410 发布日期:2018/12/22 分类:求助交流 关键字: thinkphp5
register.html内容如下

{load href="/static/css/bootstrap.css" /}
{load href="/static/js/jquery-3.3.1.min.js" /}
{load href="/static/js/bootstrap.js" /}

<!-- 注册表单:采用水平表单 -->
<div><h4>用户注册</h4></div>

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

<div class="form-group">
<label for="name" class="col-sm-2 control-label">昵称:</label>
<div class="col-sm-10">
<input type="text" name="name" class="form-control" id="name" placeholder="UserName">
</div>
</div>

<div class="form-group">
<label for="password" class="col-sm-2 control-label">密码:</label>
<div class="col-sm-10">
<input type="password" name="password" class="form-control" id="password" placeholder="Password">
</div>
</div>

<div class="form-group">
<label for="password_confirm" class="col-sm-2 control-label">确认密码:</label>
<div class="col-sm-10">
<input type="password" name="password_confirm" class="form-control" id="password_confirm" placeholder="Password Confirm">
</div>
</div>

<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<!--<button type="button" class="btn btn-primary" id="submit" name="submit" onclick="ajaxPost()">注册</button>-->
<input type="submit" class="btn btn-primary" id="submit" name="submit" value="注册">
</div>
</div>
</form>

<!-- ajax提交当前表单 -->
<script type="text/javascript">
$(function(){
$('#submit').on('click',function(){
// $('#form').submit(function(){
// $("#submit").click(function(){
$.ajax({
type: 'post',
url: "{:url('index/user/insert')}",
data: $('#form').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>

user.php代码如下

<?php
namespace app\index\Controller;
use app\common\controller\base; //导入公共控制器
use app\common\model\User as UserModel; //导入自定义模型并取别名
use app\common\validate\User as UserValidate;
use think\Request; //导入请求静态代理
use think\Db;
class User extends base
{


//注册页面
public function register()
{
$this->assign('title','注册');//设置页面标题
return $this->fetch('user/register');//渲染注册模板
}




/**
* 表单数据处理
*/
public function insert()
{
//前端提交的必须是Ajax请求再进行验证与新增操作
if(Request::isAjax()){
//1.数据验证
$data = Request::post(); //要验证的数据
$rule = 'app\common\validate\User'; //自定义的验证器

//开始验证: $res 中保存错误信息,成功返回true
$res=$this->validate($data,$rule);
if (true !== $res){ //验证失败
return ['status'=> -1, 'message'=>$res];
}else { //验证成功
//2. 将数据写入到数据表user中,并对写入结果进行判断
if ($user=UserModel::create($data)){
return ['status'=>1, 'message'=>'恭喜,注册成功~~'];
} else {
return ['status'=>0, 'message'=>'注册失败~~'];
}
}
}else{
$this->error('请求类型错误','register');
}


}

最佳答案
评论( 相关
后面还有条评论,点击查看>>