jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)


Posted in Javascript onMay 27, 2016

弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用。常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息。本文我们将给大家介绍如何使用jQuery+Ajax+PHP弹出层异步登录的应用。

jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)

效果展示        源码下载

HTML

由于本例UI部分使用了Bootstrap,以及使用jQuery插件,因此需要事先载入相关文件,推荐大家使用相关的CDN资源。

<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
<link rel="stylesheet" href="hwLayer.css">

接着,我们在html主体部分放置触发弹出层的按钮链接,以及弹出层主体内容。以下是HTML主要代码:

<a href="#0" class="btn btn-danger btn-lg" id="form-btn" data-show-layer="hw-layer-login" role="button">点击弹出登录表单</a> 
<div id="result"></div> 
<div class="hw-overlay" id="hw-layer-login"> 
<div class="hw-layer-wrap"> 
<button type="button" class="close hwLayer-close" aria-label="Close"><span aria-hidden="true">×</span></button> 
<h3 class="hw-layer-title">用户登录</h3> 
<div class="row"> 
<form class="form-horizontal" action="login.php" method="post" id="login-form"> 
<div class="form-group"> 
<div class="input-group"> 
<div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div> 
<input type="text" class="form-control" name="user" id="user" placeholder="请输入用户名"> 
</div> 
</div> 
<div class="form-group"> 
<div class="input-group"> 
<div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div> 
<input type="password" class="form-control" name="password" id="password" placeholder="请输入密码"> 
</div> 
</div> 
<div class="form-group"> 
<div class="col-md-11 col-md-offset-1"> 
<button type="submit" class="btn btn-success hwLayer-ok">登录</button> 
<span id="msg">用户名:helloweba,密码:123</span> 
</div> 
</div> 
</form> 
</div> 
</div> 
</div>

上述代码中,#result用来展示用户信息,实际应用中,我们要在主网页中显示登录后的用户名等相关信息。#hw-layer-login是弹出层内容,默认是不可见的,它包含了一个登录表单,相关CSS样式请大家参阅Bootstrap官网。

jQuery

我们在点击页面中的链接或按钮后,会调用hwLayer插件,触发登录弹出层。先加载jQUery和hwLayer插件。

<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="jquery.hwLayer.js"></script>

然后,调用hwLayer插件。

$(function(){ 
$('#form-btn').hwLayer({ 
width: 480, 
tapLayer: false 
}); 
});

现在,弹出层出来了,而关键的部分也来了,我们在填写好账号信息,点击登录后,会发生什么?很显然,作为表单提交事件,我们先要验证前端输入的合法性,这里我只是简单的验证输入不能为空的情况。然后提交Ajax,将用户名和密码内容提交给后端login.php来处理。login.php它会验证我们填写的账号信息是否正确,并且将处理的结果以json格式返回给前端。那么当前端收到登录成功的信息时,将登录结果用户名和登录时间显示在主页面#result上,即实现了大家常说的局部刷新效果,同时应该关闭弹出层。

$(function(){ 
$(".hwLayer-ok").on('click', function(event) { 
event.preventDefault(); 
var user = $('#user').val(); 
var pass = $('#password').val(); 
if(user==''){ 
$('#msg').addClass('text-danger').text('用户名不能为空!'); 
return false; 
} 
if(pass==''){ 
$('#msg').addClass('text-danger').text('密码不能为空!'); 
return false; 
} 
$.ajax({ 
url: 'login.php', 
type: 'POST', 
dataType: 'json', 
data: {username: user,password: pass}, 
beforeSend: function(){ 
$('#msg').addClass('text-success').text('正在登录...'); 
$(".hwLayer-ok").attr('disabled',true); 
}, 
success: function(res){ 
if(res.code==1){ //登录成功 
$('#result').html('欢迎您,' + res.username + ',登录时间:' + res.logintime); 
$('#msg').removeClass('text-danger').addClass('text-success').text('登录成功!'); 
$('#hw-layer-login').hwLayer('close'); 
}else{ 
$('#msg').addClass('text-danger').text('用户名或密码错误!'); 
} 
$(".hwLayer-ok").removeAttr('disabled'); 
} 
}); 
}); 
});

PHP

以上的Ajax异步操作当然离不开我们后端PHP,当然后端语言你可以自己选。login.php接收前端post上来的用户名和密码,然后比对验证是否正确。这里我偷懒,定义好了用户名和密码,而实际应用中我们应该使用PHP去读取数据库如MySQL中的用户表,比对用户表中的信息,并且以json数据返回登录结果给前端,请看代码:

$username = stripslashes(trim($_POST['username'])); 
$password = stripslashes(trim($_POST['password'])); 
if($username=='helloweba' && $password=='123'){ 
$res['code'] = 1; 
$res['username'] = $username; 
$res['logintime'] = date('Y-m-d H:i'); 
}else{ 
$res['code'] = 0; 
} 
echo json_encode($res);

以上所述是小编给大家介绍的jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
Aug 12 Javascript
js实现收缩菜单效果实例代码
Oct 30 Javascript
Jquery使用val方法读写value值
May 18 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
Oct 05 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
vue-router两种模式区别及使用注意事项详解
Aug 01 Javascript
vue-cli3.X快速创建项目的方法步骤
Nov 14 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
js基于cookie方式记住返回页面用法示例
May 27 #Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 #Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 #Javascript
JS集成fckeditor及判断内容是否为空的方法
May 27 #Javascript
js实现div模拟模态对话框展现URL内容
May 27 #Javascript
详解jQuery中的deferred对象的使用(一)
May 27 #Javascript
基于JS实现密码框(password)中显示文字提示功能代码
May 27 #Javascript
You might like
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python中的类与类型示例详解
2019/07/10 Python
python构造函数init实例方法解析
2020/01/19 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
如何使用PHP session
2015/04/21 面试题
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
介绍一下linux的文件权限
2014/07/20 面试题
函授大学生自我鉴定
2014/02/05 职场文书
入党介绍人评语
2014/05/06 职场文书
语文复习计划
2015/01/19 职场文书
教师节倡议书2015
2015/04/27 职场文书
反邪教观后感
2015/06/11 职场文书
安全教育培训制度
2015/08/06 职场文书