学习了JSON的格式转换,利用ajax异步发送信息到后端php的整个过程。
以及读取json文件的方法。
作业1、读取json文件内容显示到前端页面
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>测试读取json文件</title>
</head>
<body>
<button>读取后端数据</button>
<p></p>
<script>
var btn = document.getElementsByTagName('button').item(0);
var p = document.getElementsByTagName('p').item(0);
// 生成ajax对象
var xhr = new XMLHttpRequest();
// 方法1///////////////////////////////////////////////////////////
// 监听点击对象
btn.addEventListener('click',getData,false);
// 注册点击事件函数
function getData() {
xhr.addEventListener('readystatechange',getDD,false);
xhr.open('get','admin/tsconfig.json',true);
xhr.send(null);
}
function getDD() {
if (xhr.readyState === 4){
// console.log(xhr.responseText);
var obj = JSON.parse(xhr.responseText);
p.innerHTML = '名字:'+obj.name+'年龄:'+obj.age+'爱好:'+obj.hobby[1]+'成绩:'+obj.grade.php;
}
}
// 方法2///////////////////////////////////////////////////////////
// btn.addEventListener('click',function () {
// xhr.onreadystatechange = function () {
// if (xhr.readyState === 4) {
// console.log(xhr.responseText);
// var obj = JSON.parse(xhr.responseText);
// p.innerHTML = '名字:'+obj.name+'年龄:'+obj.age+'爱好:'+obj.hobby[1]+'成绩:'+obj.grade.php;
// }
// };
//
// xhr.open('get', 'admin/tsconfig.json', true);
// xhr.send(null);
// },false);
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
作业2、修改昨天的验证表单,把前端发送到后端的信息改成json格式发送
<!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)
// 利用JSON.parse命令把字串符类型转换到javaScript的对象或者数组类型
var content = JSON.parse(xhr.responseText);
// btn.style.color = 'red';
// btn.innerHTML = content.message;
switch (content.status) {
case 1:
btn.style.color = 'red';
btn.innerHTML = content.message;
break;
case 2:
btn.style.color = 'red';
btn.innerHTML = content.message;
break;
case 3:
btn.style.color = 'green';
btn.innerHTML = content.message;
break;
}
}
}
};
// 初始化连接
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);
// 利用JSON格式发送
var data = {
email: email.value,
password: password.value
};
// console.log(data);
// javaScript对象转换成json字符串后需要在前面加一个名key 这是留给后端程序获取识别的
// 示例 user={"email":"admin@php.cn","password":"123456"}
var date = 'user=' + JSON.stringify(data);
// console.log(date);
xhr.send(date);
}
},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>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号