作业1、Ajax制作表单
html页面
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>Ajax验证表单数据</title>
</head>
<body>
<form id="login">
<p>
<label for="email">邮箱:</label>
<input type="text" id="email">
<span id="em"></span>
</p>
<p>
<label for="password">密码:</label>
<input type="password" id="password">
<span id="psw"></span>
</p>
<p>
<button id="submit" type="button">登录</button>
<span id="btn"></span>
</p>
</form>
<script>
// 首先拿到各个标签
var login = document.forms.namedItem('login');
var email = login.email;
var em = login.querySelector('#em');
var password = login.password;
var psw = login.querySelector('#psw');
var submit = login.submit;
var btn = login.querySelector('#btn');
submit.addEventListener('click',function () {
// 非空验证 验证完毕反正真后进入表单验证
if (show()) {
// 验证表单
// 创建Ajax
var xhr = new XMLHttpRequest;
// 创建监听事件
xhr.onreadystatechange = function () {
if (xhr.readyState === 4){
if (xhr.status === 200){
btn.innerHTML =xhr.responseText;
// console.log(xhr.responseText);
}
}
};
// 初始化连接
xhr.open('POST','admin/admin.php',true);
// 设置http头
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// 发送信息
xhr.send('email='+email.value+'&password='+password.value);
}
},false);
// 非空验证
function show() {
// trim 是清空文本前后空格的命令函数
var temp1 = email.value.trim();
var temp2 = password.value.trim();
if (temp1.length === 0){
em.innerHTML = '请输入邮箱';
email.focus();
return false;
}else if (temp2.length === 0){
psw.innerHTML = '请输入密码';
password.focus();
return false;
}
return true;
}
// 编辑框输入内容后清空占位符的提示
email.addEventListener('input',function () {
em.innerHTML = '';
btn.innerHTML = '';
},false);
password.addEventListener('input',function () {
psw.innerHTML = '';
btn.innerHTML = '';
},false);
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
php页面
<?php
//print_r($_POST);
$email = $_POST['email'];
$password = $_POST['password'];
//创建数组代替数据库模拟访问
$emailList = ['admin@php.cn','admin@html.cn','admin@py.cn'];
//密码是转换成了md5形式
$pwd = md5('123456');
if (!in_array($email,$emailList)){
echo '<span style = "color: red">邮箱不正确</span>';
}elseif (md5($password) !== $pwd){
echo '<span style = "color: red">密码不正确</span>';
}else {
echo '<span style = "color: green">验证通过,正在跳转...</span>';
}点击 "运行实例" 按钮查看在线实例
作业2、Ajax标签选项卡
html页面
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>Ajax制作选项卡</title>
<style>
#wrap{
width: 400px;
height: 600px;
margin: 0 auto;
border-radius: 3px;
border: 1px solid grey;
}
#wrap ul{
list-style: none;
margin: 0;
padding: 0;
}
#box1{
height: 38px;
background-color: #A9A9A9;
/*border: 2px solid grey;*/
}
#box1 li{
float: left;
margin: 5px;
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
/*border-bottom: 2px solid red;*/
/*background-color: #A9A9A9;*/
cursor: pointer;
}
#wrap div{
display: none;
clear: both;
margin: 5px;
}
div ul li:hover{
color: #AF3434;
cursor: pointer;
}
</style>
</head>
<body>
<div id="wrap">
<!--<hr style="background-color: darkgray; height: 1px;clear: both;position: relative;top: -7px">-->
<ul id="box1">
<li>技术文章</li>
<li>网站源码</li>
<li>原生手册</li>
<li>推荐博文</li>
</ul>
<div class="dit" style="display: block;">
<!--<ul>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--<li>这是第一个选项卡的DIV内容</li>-->
<!--</ul>-->
</div>
<div class="dit">
<!--<ul>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--<li>这是第二个选项卡的DIV内容</li>-->
<!--</ul>-->
</div>
<div class="dit">
<!--<ul>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--<li>这是第三个选项卡的DIV内容</li>-->
<!--</ul>-->
</div>
<div class="dit">
<!--<ul>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--<li>这是第四个选项卡的DIV内容</li>-->
<!--</ul>-->
</div>
</div>
<script>
var li = document.getElementById('box1');
var div = document.getElementsByClassName('dit');
Object.keys(li.children).forEach(function (value) {
li.children[value].addEventListener('click',function () {
// 点击的时候显示相对应的div内容 显示之前把其他的div内容都隐藏
for (var i = 0; i < li.children.length; i++) {
li.children[i].style.color = 'black';
li.children[i].style.borderBottom = '';
div[i].style.display = 'none';
}
// 全部隐藏后显示当前点击对应的DIV标签
li.children[value].style.color = 'red';
li.children[value].style.borderBottom = '2px solid red';
div[value].style.display = 'block';
// 获取后端数据
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState === 4){
div[value].innerHTML = request.responseText;
}
};
request.open('get','admin/data.php?p='+value,true);
request.send(null);
},false);
});
// 打开页面后默认显示第一个标签内容方法
// 第一种
// var request = new XMLHttpRequest();
// request.onreadystatechange = function () {
// if (request.readyState === 4){
// div[0].innerHTML = request.responseText;
// }
// };
// request.open('get','admin/data.php?p='+0,true);
// request.send(null);
//
// li.children[0].style.color = 'red';
// li.children[0].style.borderBottom = '2px solid red';
// 第二种 自动点击方法
// 模拟机器人点击操作,获取默认页数据,这里点击第一个li标签
// 获取到要点击的标签
var defaultTab = li.firstElementChild;
// 给标签添加点击事件
defaultTab.addEventListener('click',show,false);
// 因为要自动点击 不是认为点击 所以要实例化一下
var event = new Event('click');
// 把事件分配给标签 让标签自动执行这个点击事件 不需要认为点击
defaultTab.dispatchEvent(event);
function show() {
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState === 4){
div[0].innerHTML = request.responseText;
}
};
request.open('get','admin/data.php?p='+0,true);
request.send(null);
li.children[0].style.color = 'red';
li.children[0].style.borderBottom = '2px solid red';
}
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
php页面
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/5/16 0016 * Time: 12:16 */ $data = [ '<ul> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> <li>这是第一个选项卡的DIV内容</li> </ul>', '<ul> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> <li>这是第二个选项卡的DIV内容</li> </ul>', '<ul> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> <li>这是第三个选项卡的DIV内容</li> </ul>', '<ul> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> <li>这是第四个选项卡的DIV内容</li> </ul>' ]; $index = $_GET['p']; echo $data[$index];
点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号