ajax_add.js文件代码:建议大家把js写入文件里,而不是写在HTML里边,乱而且加载慢。未来优化会很难。
首先var一个变量 在里边写入用户名,密码确认密码,$.ajax.使用的前提是你给加载一个jquery.js或者jquery.min.js文件,这两个一个是开发版,一个是正式版。都一样
接受后台返回值status输出错误信息
$(document).ready(function() {
$("#on_button").click(function () {
var user = {
username: $("#username").val(),
pwd: $("#pwd").val(),
rpwd: $("#rpwd").val(),
};
$.ajax({
type: "POST",
url: "../Customer/post",
data: user,
dataType: 'json',
success: function (data) {
if (data.status == -1) {
$(".no_customer").html(data.msg);
return false;
}
if (data.status == -2) {
$(".no_pwd").html(data.msg);
return false;
}
if (data.status == -3) {
$(".no_customer").html(data.msg);
return false;
} else {
window.location.href = "../Index/Index";
return true;
}
}
})
});
}); html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<css file="__PUBLIC_CSS__/amazeui.min.css"/>
<js file="__PUBLIC_JS__/jquery.min.js"/>
<js file="__HOME_JS__/customer/ajax_add.js"/>
<title>register</title>
</head>
<body>
<div class="am-g">
<div class="am-u-md-8 am-u-sm-centered">
<form class="am-form" method="post">
<fieldset class="am-form-set">
<input type="text" name="username" placeholder="输入您的用户名,方便你的下次登录" id="username">
<div class="no_customer" style="color:red"></div>
<input type="password" name="pwd" placeholder="输入您的密码" id="pwd">
<input type="password" name="rpwd" placeholder="确认您的密码,方便您忘记密码,还给找回" id="rpwd">
<div class="no_pwd" style="color:red"></div>
</fieldset>
<button type="button" id="on_button" class="am-btn am-btn-primary am-btn-block">注册</button>
</form>
</div>
</div>
<script></script>
</body>
</html>id,name不要输错,因为ajax_add.js文件需要使用。当然这里作者使用的是amazeui前端框架/*注册逻辑类
*@param string username 用户名
*@param string pwd 密码
*@param string rpwd 确认密码
*/
public function registerLogic($username, $pwd, $rpwd)
{
if(!$username || !$pwd|| !$rpwd)
return array('status'=>-1,'msg'=>'填写信息不能为空');
//验证两次密码是否匹配
if($pwd != $rpwd)
return array('status'=>-2,'msg'=>'两次输入密码不一致');
//验证是否存在用户名
if(get_customer_info($username))
return array('status'=>-3,'msg'=>'账号已存在');}
后台逻辑方法,如果公司项目寻求可持续发展,一直迭代的话,框架设计需要认证的设计一番,不然代码耦合度非常高。
/*注册逻辑类
*@param string username 用户名
*@param string pwd 密码
*@param string rpwd 确认密码
*/
public function registerLogic($username, $pwd, $rpwd)
{
if(!$username || !$pwd|| !$rpwd)
return array('status'=>-1,'msg'=>'填写信息不能为空');
//验证两次密码是否匹配
if($pwd != $rpwd)
return array('status'=>-2,'msg'=>'两次输入密码不一致');
//验证是否存在用户名
if(get_customer_info($username))
return array('status'=>-3,'msg'=>'账号已存在');
}
账户查询方法:TP框架的小伙伴可以直接放在公用方法里边
function get_customer_info($username)
{
$map['name'] = $username;
$customer = M('customer')->where($map)->find();
return $customer;
}
注册方法:TP小伙伴可以直接放到控制器当中使用。当然new customerLogic这个类,需要你自己建立或者更改。
/*注册客户*/
public function post()
{
if (IS_POST) {
$regLogic = new CustomerLogic();
$username = I('post.username');
$pwd = I('post.pwd');
$rpwd = I('post.rpwd');
$result= $regLogic->registerLogic($username, $pwd, $rpwd);
if($result['status']<0)
exit(json_encode($result));
$data = array('name' => $username, 'pwd' => $pwd);
$add = M('customer')->data($data)->add();
if ($add)
session('name',$data['name']);
exit(json_encode(array('status' => 1, 'msg' => '注册成功')));
}
$this->display();
} 到这里就结束了。当然全部复制的人。。除了错误可以留言告诉我,我会一一回复,当然还是相信大家会自己思考和解决。
博客地址:zhouhongliang.cn欢迎指点。
