PHP程序员小白到大牛集训(12期免息)

无刷新验证登陆

原创2019-02-01 16:44:27140
摘要:<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>无刷新表单验证</title> </head> <bo
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>无刷新表单验证</title>
</head>
<body>
<h3>后台管理系统登录</h3>
<form>
    <p>邮箱: <input id="email" type="email" name="email"></p>
    <p>密码: <input id="password" type="password" name="password"></p>
    <p><button type="button">提交</button></p>
    <p id="p-txt"></p>
</form>
<script>
    let btn = document.getElementsByTagName('button')[0];
    btn.onclick = function () {
        //1.创建xhr对象
        let xhr = new XMLHttpRequest();

        //2.监听响应状态
        xhr.onreadystatechange = function(){
            if (xhr.readyState === 4) { // 准备就绪
                // 判断响应结果:
                if (xhr.status === 200) {
                    // 响应成功,通过xhr对象的responseText属性可以获取响应的文本,此时是html文档内容
                    let p = document.getElementById('p-txt') ;
                    p.style.color = 'red';

                    let json = JSON.parse(xhr.responseText);
                    if (json.status === 1) {
                        p.innerHTML = json.msg;

                    } else if (json.status == 0) {
                        p.innerHTML = json.msg;
                    }
                    document.forms[0].appendChild(p); 
                    btn.disabled = true;
                    setTimeout(function(){
                        document.forms[0].removeChild(p);
                        btn.disabled = false;
                         if (json.status == 1) {
                             location.href = 'D:/daima/home.html';
                         }
                        },2000);
                } else {
                    // 响应失败,并根据响应码判断失败原因
                    alert('响应失败'+xhr.status);
                }
            } 
        }

        //3.设置请求参数
        xhr.open('post','user.php',true);

        //4. 设置头信息,将内容类型设置为表单提交方式
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        //4.发送请求
        let data = {
          email:  document.getElementById('email').value,
          password:  document.getElementById('password').value
        };
        let data_json=JSON.stringify(data);
        xhr.send('data='+data_json);
    }
</script>
</body>
</html>
user.php

<?php

$arr = array("email"=>"604335659@qq.com","password"=>"123456");

$user = json_decode($_POST['data']);

$email = $user->email;

$password = $user->password;


if ($arr['email'] == $email && $arr['password'] == $password ) {


    echo json_encode(['status'=>1,'msg'=>'登录成功,正在跳转...']) ;


    exit;


} else {


    echo json_encode(['status'=>0,'msg'=>'邮箱或密码错误,登录失败!']) ;


    exit;


}

home.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>后台管理系统</title>
<link rel="stylesheet" type="text/css" href="D:/my-mi/layui/css/layui.css">
<script type="text/javascript" src="D:/my-mi/layui/layui.js"></script>
<style type="text/css">
header{width: 100%;height: 50px;line-height: 50px;background:#00B9D6;color: #fff;font-size: 22px;text-indent: 20px;}
header span{float: right;font-size: 14px;margin-right: 15px;}
header span a{float: right;font-size: 14px;color:red;}
.left{width: 200px;background: #222;position: absolute;}
.layui-colla-title{background: #ff6b00;color:#fff;}
.layui-colla-content{padding: 0px;}
.right{position: absolute;left: 200px;height: 100%;width: 1055px;}
</style>
</head>
<body>
<header>
后台——管理系统<span>admin[管理登陆]<a href="#"onclick="out()" >退出</a></span>
</header>
<div>
<div>
  <div>
    <h2>明星</h2>
    <div class="layui-colla-content layui-show">
<ul class="layui-nav layui-nav-tree" lay-filter="test">
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;" src="gongfu.html" onclick="newSrc(this)" >功夫明星</a>
  </li>
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">歌星</a>
  </li>
   <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">舞星</a>
  </li>
</ul>
    </div>
  </div>
  <div>
    <h2>电影</h2>
    <div class="layui-colla-content ">
<ul class="layui-nav layui-nav-tree" lay-filter="test">
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">动作片</a>
  </li>
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">爱情片</a>
  </li>
</ul>

    </div>
  </div>
  <div>
    <h2>电视剧</h2>
    <div class="layui-colla-content ">

<ul class="layui-nav layui-nav-tree" lay-filter="test">
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">默认展开1</a>
  </li>
  <li class="layui-nav-item layui-nav-itemed">
    <a href="javascript:;">默认展开2</a>
  </li>
</ul>
    </div>
  </div>
   <div>
    <h2>动漫</h2>
    <div class="layui-colla-content ">内容区域</div>
  </div>
  <div>
    <h2>科幻</h2>
    <div class="layui-colla-content ">内容区域</div>
  </div>
  <div>
    <h2>玄幻</h2>
    <div class="layui-colla-content ">内容区域</div>
  </div>
</div>

</div>
<div>
<iframe src="de.html"  frameborder="0" scrolling="0" style="width: 100%;height: 100%;"></iframe>    

</div>
</body>

<script>
//注意:折叠面板 依赖 element 模块,否则无法进行功能性操作
layui.use('element', function(){
  var element = layui.element;
  
  //…
});
layui.use('layer', function(){
  var layer = layui.layer;
  $= layui.jquery;
  newHeight()
});   
//上面简写
// layui.use(['layer','element'] function(){
//   var element = layui.element;
//   var layer = layui.layer;
//   var $= layui.jquery;
//   newHeight();
// }); 

function out(){
layer.confirm('是否确定退出?', {
icon:3,
   btn: ['确定', '取消'] //可以无限个按钮
}, function(index, layero){
  //按钮【按钮一】的回调
}, function(index){
  //按钮【按钮二】的回调
});
}
function newHeight(){
var height=document.documentElement.clientHeight;
$('.left').height(height);
}
function newSrc(obj){
var src=$(obj).attr('src');
$('iframe').attr('src',src);
}

</script>

</html>


批改老师:天蓬老师批改时间:2019-02-02 11:51:42
老师总结:这类无刷新的表单验证, 是开发过程 , 经常要写的代码, 一定要背下来

发布手记

热门词条