我有一个问题,我做了一个采取/可用的用户名状态,工作正常,但当我想禁用我的提交按钮,这是不工作,我不知道为什么,请帮助我。
HTML输入:
<input onkeyup="checkUsername()" id="username" name="username" type="text" class="form-control" value="<?php echo $row['username'] ?>" placeholder="Nom d'utilisateur" required autocomplete="off">
Javascript:
<script>
function checkUsername() {
const username = document.getElementById("username").value;
const xhr = new XMLHttpRequest();
xhr.open("POST", "check_username.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
const response = xhr.responseText;
const usernameMessage = document.getElementById("usernameMessage");
if (response === "Nom d'utilisateur disponible.") {
usernameMessage.innerHTML = "<span style='color:green;'>Nom d'utilisateur disponible.</span>";
usernameMessage.style.display = "flex";
document.getElementById('submit-button').disabled = false;
} else if (response === "Ce nom d'utilisateur est déjà pris.") {
usernameMessage.innerHTML = "<span style='color:red;'>Ce nom d'utilisateur est déjà pris.</span>";
usernameMessage.style.display = "flex";
document.getElementById('submit-button').disabled = true;
} else {
// gérer d'autres réponses ici
}
}
};
xhr.send("username=" + username);
}
</script>
PHP和MySQL:
<?php
session_start();
// Connexion à la base de données
include "./config.php";
// Vérification de la connexion
if ($mysqli->connect_errno) {
echo "Erreur de connexion à la base de données: " . $mysqli->connect_error;
exit();
}
// Récupération du nom d'utilisateur envoyé en POST
$username = $_GET['username'];
// Requête SQL pour vérifier si le nom d'utilisateur est déjà pris
$query = "SELECT COUNT(*) as count FROM users WHERE username = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();
// Vérification du résultat
header('Content-Type: application/json');
if ($count > 0) {
echo "<div class='usernameMessage no'>Ce nom d'utilisateur est déjà pris.</div>";
echo "<script> document.getElementById('submit-button').disabled = true; </script>";
} else {
echo "<div class='usernameMessage yes'>Ce nom d'utilisateur est disponible.</div>";
echo "<script> document.getElementById('submit-button').disabled = false; </script>";
}
// Fermeture de la connexion à la base de données
$mysqli->close();
?>
<style>
.usernameMessage {
}
.yes{
color: green;
}
.no {
color: red;
}
</style>
我试着把
document.getElementById('submit-button').disabled = false;
但它不工作,也许是因为什么东西启动了我的按钮...
1条答案
按热度按时间xdyibdwo1#
你的代码中有许多缺陷。
您在PHP代码中使用了$_GET方法,但在Javascript代码中使用了$_POST方法。PHP代码响应似乎不适合Javascript代码
下面是正确的代码
超文本标记语言
脚本语言:
PHP代码: