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 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
jquery星级插件、支持页面中多次使用
Mar 25 Javascript
jQuery表格插件datatables用法总结
Sep 05 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
jquery代码规范让代码越来越好看
Feb 03 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
解决Antd Table组件表头不对齐的问题
Oct 27 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
js随机生成一个验证码
2017/06/01 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
学习心理学的体会
2014/11/07 职场文书
工作失误检讨书
2015/01/26 职场文书
小学运动会开幕词
2015/01/28 职场文书