jQuery Validate Remote-Methode: Fehlerbehebung bei der Überprüfung des Benutzernamens
Bei Verwendung der Remote-Methode von jQuery Validate zum Überprüfen, ob ein Benutzername in der Datenbank vorhanden ist, treten bestimmte Szenarien auf kann zu falschen Fehlermeldungen führen. In diesem Artikel wird ein häufiges Problem behoben, bei dem die Fehlermeldung „Dieser Benutzername ist bereits vergeben“ angezeigt wird, obwohl der Benutzername nicht vorhanden ist.
Grundlegendes zur Remote-Methode
Die Remote-Methode ermöglicht Ihnen, ein Feld anhand von Daten zu validieren, die von einem serverseitigen Skript abgerufen wurden. Es werden zwei Parameter benötigt:
Beispielimplementierung
Im bereitgestellten Code validiert das folgende jQuery-Skript die Feld „Benutzername“:
$("#signupForm").validate({ rules: { username: { required: true, minlength: 3, remote: "check-username.php" } }, messages: { username: { remote: "This username is already taken! Try another." } } });
Das Skript check-username.php ist dafür verantwortlich, den Benutzernamen aus der POST-Anfrage abzurufen und zu prüfen, ob er in der Datenbank vorhanden ist:
<?php require_once "./source/includes/data.php"; header('Content-type: application/json'); $name = mysql_real_escape_string($_POST['username']); $check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'"); if (mysql_num_rows($check_for_username) > 0) { $output = true; } else { $output = false; } echo json_encode($output); ?>
Beheben des Problems
Das ursprüngliche PHP-Skript gab „true“ zurück, um anzuzeigen, dass der Benutzername existiert, gab aber auch das Ergebnis wieder, was zur Ursache führte jQuery Validate zeigt eine falsche Fehlermeldung an.
Das korrigierte PHP-Skript sieht wie folgt aus:
<?php require_once "./source/includes/data.php"; header('Content-type: application/json'); $request = $_REQUEST['username']; $query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'"); $result = mysql_num_rows($query); if ($result == 0) { $valid = 'true'; } else { $valid = 'false'; } echo $valid; ?>
Indem jQuery Validate im PHP-Skript nur den booleschen Wert „true“ oder „false“ zurückgibt, kann dies jetzt geschehen Stellen Sie korrekt fest, ob der Benutzername existiert.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine jQuery-Validierungs-Remote-Methode den Fehler bei der Verfügbarkeit des falschen Benutzernamens an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!