abstract:通过对AJAX无刷新表单验证页面的实现,对AJAX异步请求后台数据有了进一步的了解,并尝试着写简单的php代码进行后台交互,对通过AJAX实现json数据的提交和返回有了进一步的认识。代码如下:前端验证页面:<!DOCTYPE html> <html> <head> <meta chars
通过对AJAX无刷新表单验证页面的实现,对AJAX异步请求后台数据有了进一步的了解,并尝试着写简单的php代码进行后台交互,对通过AJAX实现json数据的提交和返回有了进一步的认识。
代码如下:
前端验证页面:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表单验证</title> <script type="text/javascript" src="jquery.js"></script> </head> <body> <h3>用户登录</h3> <form> <p>用户名: <input type="text" name="username" id="username"></p> <p>密码: <input type="password" name="password" id="password"></p> <p><button type="button" id="btnSub">提交</button></p> </form> <script> let btn = document.getElementById("btnSub"); btn.onclick = function () { //1.创建xhr对象 let xhr = new XMLHttpRequest(); //2.监听响应状态 xhr.onreadystatechange = function(){ if (xhr.readyState === 4) { // 准备就绪 // 判断响应结果: if (xhr.status === 200) { //响应成功 let jsonData=JSON.parse(xhr.responseText); //根据status判断返回结果。1为成功,0为失败 if(jsonData.status==='1'){ $('p:last').after('<p style="color:red">'+jsonData.Msg+'</p>').next().slideUp(3000); btn.disabled=true;//成功需要禁用按钮,防止验证成功后继续点击。后续可做跳转页面。 } else if(jsonData.status==='0'){ $('p:last').after('<p style="color:red">'+jsonData.Msg+'</p>').next().slideUp(3000); btn.disabled=false;//验证失败需要重新解除按钮禁用 //清空内容,并把焦点停在用户名的输入框中 $('#username').val(""); $('#password').val(""); $('#username').focus(); } } else { // 响应失败,并根据响应码判断失败原因 alert('响应失败'+xhr.status); } } else { // 请求等待 } } //3.设置请求参数 xhr.open('post','check.php',true); //4. 设置头信息,将内容类型设置为表单提交方式 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //4.发送请求 let data = { username: document.getElementById('username').value, password: document.getElementById('password').value }; let data_json=JSON.stringify(data); xhr.send('data='+data_json); } </script> </body> </html>
check.php:
<?php // var_dump($_POST['data']); $user=json_decode($_POST['data']); // echo $user->username; // echo $user->password; $arr=[]; if($user->username==="111"&&$user->password==="222"){ $arr=['status'=>'1','Msg'=>'登录成功']; } else{ $arr=['status'=>'0','Msg'=>'用户名或密码错误']; } echo json_encode($arr);