![](/img/trans.png)
[英]Trying to validate username and password in javascript but not getting alert and desired output
[英]Javascript validate username on PHP with realtime output
我想使用Javascript驗證我的輸入用戶名是否正確或是否實時顯示結果。 這是index.html代碼:
<html>
<head>
<script>
function showHint(str){
if(str.length == 0){
document.getElementById("hint").innerHTML = "";
}else{
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("hint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "demo3.php?input=" + str, true);
xmlhttp.send();
}
}
</script>
</head>
<body>
Type a username: <br>
<input id="hint" type="text" name="username" oninput="showHint(this.value)"><p id="hint"></p>
</body>
</html>
這是demo3.php代碼:
<html>
<head>
</head>
<body>
<?php
$mysqli = new mysqli("localhost","root","123456","mini");
$username = $mysqli->real_escape_string($_REQUEST['input']);
$sql = "SELECT username FROM `users` WHERE username='$username'";
$result = $mysqli->query($sql);
if($result->num_rows){
echo "Valid username";
}else{
echo "Invalid username";
}
?>
</body>
</html>
我使用了w3cschools的oninput事件示例,我想知道為什么我的結果沒有顯示我的期望? 而且,如果我為$ username分配了靜態變量,則demo3.php結果似乎是正確的反饋,而不是index.html的反饋。
另外,我想知道如何在同一驗證php文件中驗證多種形式,例如密碼和電子郵件。 例如:
input1 -> check username ->output check result
input2-> check password ->output check result
input3-> check email->output check result
javascript的新手。所有教程似乎都只提供一個演示,而不提供多個示例。
問題是您使用ID“提示”兩次。 ID是唯一的標識符,因此您永遠不能在同一頁面中多次使用它。 而且,您應該避免使用內聯處理程序。 您需要將JavaScript更改為:
<script>
window.onload = function() {
function showHint(str){
if(str.length == 0){
document.getElementById("hint").innerHTML = "";
}else{
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("hint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "demo3.php?input=" + str, true);
xmlhttp.send();
}
}
document.getElementById("hintInput").onkeyup = function() {
showHint(this.value)
}
}
</script>
和您的HTML:
<input id="hintInput" type="text" name="username"><p id="hint"></p>
如果在關閉body
標簽之前放置了腳本標簽,則可以擺脫window.onload
。
由於您將輸入內容放置在URL中,因此您將需要使用POST
(不使用URL)以外的GET
參數:
xmlhttp.open("GET", "demo3.php?input=" + str, true);
現在它應該可以為$_REQUEST['input']
或$_GET['input']
提取input
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.