abstrakt:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ajax表單驗(yàn)證</title> <style type="text/css"> </style>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ajax表單驗(yàn)證</title> <style type="text/css"> </style> </head> <body> <form action=""> 用戶名: <input type="email" name="email" > <br> 密碼: <input type="password" name="password"> <br> <button type="submit" name="submit" onsubmit="return false;">登錄</button> <p></p> </form> <script type="text/javascript"> let btn = document.getElementsByTagName('button').item(0); let p = document.getElementsByTagName('p')[0]; btn.onclick = function(){ // 1創(chuàng)建 xhr let xhr = new XMLHttpRequest(); //2 監(jiān)聽響應(yīng)狀態(tài) xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ //準(zhǔn)備就緒 //判斷響應(yīng)結(jié)果 if(xhr.status == 200){ // 響應(yīng)成功,通過xhr對(duì)象的responseText屬性可以獲取響應(yīng)的文本,此時(shí)是html文檔內(nèi)容 let data =JSON.parse(xhr.responseText); let color = 'red'; p.style.display = 'block'; if(data.status == 1){ color = 'green'; } p.innerHTML = data.msg; p.style.color = color; btn.setAttribute('disabled',true); //等效語(yǔ)法 setTimeout(function(){ btn.disabled = false; p.style.display = 'none'; if(data.status == 1){ location.href = "admin.html"; } },2000) }else{ alert("請(qǐng)求失敗"+xhr.status); } } } //3 設(shè)置請(qǐng)求參數(shù) 第三個(gè)參數(shù)是異步 true 同步false xhr.open('post','*****',true); //4 設(shè)置頭信息,將內(nèi)容類型設(shè)置為表單提交方式 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // 5 發(fā)送請(qǐng)求 let data = { email : document.getElementsByName('email')[0].value, password : document.getElementsByName('password')[0].value } //轉(zhuǎn)換為字符串 let data_json = JSON.stringify(data); //加個(gè)data= 這樣成為鍵值對(duì) 方便后臺(tái)拿取數(shù)據(jù) xhr.send('data='+data_json); //btn.disabled = true; //禁用按鈕,防止重復(fù)點(diǎn)擊 return false; } </script> </body> </html>
<?php $servername = "127.0.0.1"; $username = "*******"; $word = "*******"; $table = "user"; header('Content-Type: text/html; charset=utf-8'); header('Access-Control-Allow-Origin:*'); //設(shè)置全部域名可請(qǐng)求 header('Access-Control-Allow-Methods: GET, POST'); //設(shè)置請(qǐng)求方式 header('Access-Control-Allow-Credentials:true'); // 創(chuàng)建連接 $conn = new mysqli($servername, $username, $word); $user = json_decode($_POST['data']); //轉(zhuǎn)換為對(duì)象 $email = $user->email; $password = $user->password; if(!$email){ echo json_encode(['status'=>0,'msg'=>'請(qǐng)輸入郵箱']) ; exit; $email = "test1"; } if(!$password){ echo json_encode(['status'=>0,'msg'=>'請(qǐng)輸入密碼']) ; exit; $password = "1.11"; } // 檢測(cè)連接 if ($conn){ //echo "鏈接成功"; //設(shè)置編碼 $cc = $conn->query("set names utf8;"); //選庫(kù) $cc = $conn->query("use ****;"); //var_dump($cc); //執(zhí)行成功 $sql = "SELECT * FROM `user` WHERE name='{$email}' AND menoyNum={$password}"; //執(zhí)行sql語(yǔ)句 $res = $conn->query($sql); if($res){ $row = null; $row = mysqli_fetch_all($res); echo json_encode(['status'=>1,'msg'=>'登錄成功,正在跳轉(zhuǎn)...']) ; }else{ echo json_encode(['status'=>0,'msg'=>'郵箱或密碼錯(cuò)誤,登錄失敗!']) ; } }else{ die("連接失敗: " . $conn->connect_error); //設(shè)置編碼為utf8 } exit; ?>
Korrigierender Lehrer:韋小寶Korrekturzeit:2019-02-11 09:19:38
Zusammenfassung des Lehrers:寫的很不錯(cuò) 使用ajax進(jìn)行無(wú)刷新提交,這里的form標(biāo)簽甚至都可以不用了!