Rumah >pembangunan bahagian belakang >tutorial php >Mengapa jQuery Saya Mengesahkan Kaedah Jauh Menunjukkan Ralat Ketersediaan Nama Pengguna yang Salah?
Kaedah Jauh Sahkan jQuery: Menyelesaikan Masalah Pengesahan Nama Pengguna
Apabila menggunakan kaedah jauh jQuery Validate untuk menyemak sama ada nama pengguna wujud dalam pangkalan data, senario tertentu boleh membawa kepada mesej ralat yang salah. Artikel ini menangani isu biasa di mana mesej ralat "Nama pengguna ini sudah diambil" dipaparkan walaupun nama pengguna tidak wujud.
Memahami Kaedah Jauh
Kaedah jauh membolehkan anda mengesahkan medan terhadap data yang diambil daripada skrip sebelah pelayan. Ia memerlukan dua parameter:
Contoh Pelaksanaan
Dalam kod yang disediakan, skrip jQuery berikut mengesahkan medan nama pengguna:
$("#signupForm").validate({ rules: { username: { required: true, minlength: 3, remote: "check-username.php" } }, messages: { username: { remote: "This username is already taken! Try another." } } });
Skrip check-username.php bertanggungjawab untuk mendapatkan semula nama pengguna daripada permintaan POST dan menyemak sama ada ia wujud dalam pangkalan data:
<?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); ?>
Menyelesaikan Isu
Skrip PHP asal dikembalikan benar untuk menunjukkan bahawa nama pengguna wujud, tetapi ia juga menggemakan hasil, yang menyebabkan jQuery Validate memaparkan mesej ralat palsu.
Skrip PHP yang diperbetulkan adalah seperti berikut:
<?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; ?>
Dengan hanya mengembalikan nilai boolean true atau false dalam skrip PHP, jQuery Validate kini boleh menentukan dengan betul sama ada nama pengguna itu wujud.
Atas ialah kandungan terperinci Mengapa jQuery Saya Mengesahkan Kaedah Jauh Menunjukkan Ralat Ketersediaan Nama Pengguna yang Salah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!