如何使用php和ajax进行输入登录检查



我想创建长度登录检查脚本,每次更改输入时都进行验证。因此,当您更改输入中的值时,php的响应应该一直传递。我做不到。在我的脚本中,当我更改输入中的某些内容时,它是有效的,但通常我必须屏蔽输入。当我只是在输入中写一些东西时,该怎么做?请帮忙。。。我应该在js中使用interval函数吗?

<html>
<head>
</head>
<body>
<input name='login'>
<div>empty</div>
<button>Kliknij</button>

<script >
var loginField =document.querySelector('input');
var loginValue = document.querySelector('input').value.length;
console.log(loginValue);
var btN = document.querySelector('button');
loginField.addEventListener('change', pokazListe);
//window.onload = pokazListe();
function pokazListe(){
var loginValue = document.querySelector('input').value.length;
var zapytanie = "";
zapytanie = new XMLHttpRequest();
zapytanie.onreadystatechange = function() {
if(zapytanie.readyState==4 && zapytanie.status==200){
document.querySelector('div').innerHTML = zapytanie.responseText;
}
else{
document.querySelector('div').innerHTML = 'not work';
}
}
zapytanie.open("GET","data.php?login="+loginValue,true);
zapytanie.send();
}
</script>
</body>
</html>

这是php代码

<?php
$login = ($_GET['login']);
if($login < 6 || $login > 12 )
{
echo "Login has to have 6 to 12 charts"." ".$login;
}
else
{
echo "Login is ok."." ".$login;
}

?>

您的代码设计得很糟糕。

进行验证的方法是在触发webservice/api之前确保输入长度在min.max之内。

使用事件侦听器的输入,因此它将为输入框中的每个输入触发:

loginField.addEventListener('input', pokazListe);

在您的功能中:

function pokazListe(){
var loginValue = document.querySelector('input');
if(loginValue.value.length >= 6 && loginValue.value.length <= 12) {
var zapytanie = "";
zapytanie = new XMLHttpRequest();
zapytanie.onreadystatechange = function() {
if(zapytanie.readyState==4 && zapytanie.status==200){
document.querySelector('div').innerHTML = zapytanie.responseText;
}
else{
document.querySelector('div').innerHTML = 'not work';
}
}
zapytanie.open("GET","data.php?login="+loginValue,true);
zapytanie.send();
}
}

最新更新