首頁 >後端開發 >php教程 >為什麼我的 jQuery 驗證遠端方法顯示錯誤的使用者名稱可用性錯誤?

為什麼我的 jQuery 驗證遠端方法顯示錯誤的使用者名稱可用性錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-23 15:10:18200瀏覽

Why Does My jQuery Validate Remote Method Show the Wrong Username Availability Error?

jQuery Validate 遠端方法:使用者名稱驗證故障排除

當使用jQuery Validate 的遠端方法檢查資料庫中是否有使用者名稱時,某些情況可能會導致不正確的錯誤訊息。本文解決了一個常見問題,即儘管使用者名稱不存在,但仍顯示錯誤訊息「此使用者名稱已被佔用」。

了解遠端方法

遠端方法可讓您根據從伺服器端腳本擷取的資料驗證欄位。它需要兩個參數:

  • url:將執行驗證的腳本的URL
  • type:HTTP 請求方法(通常是GET 或POST)

範例實作

在提供的程式碼中,以下內容jQuery腳本驗證使用者名字段:

$("#signupForm").validate({
    rules: {
        username: {
            required: true,
            minlength: 3,
            remote: "check-username.php"
        }
    },
    messages: {
        username: {
            remote: "This username is already taken! Try another."
        }
    }
});

check-username.php 腳本負責從POST 請求中檢索使用者名稱並檢查資料庫中是否存在:

<?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);
?>

解決問題

原始PHP腳本回傳true表示使用者名稱存在,但它也回顯了結果,導致jQuery Validate 顯示錯誤訊息。

修正後的 PHP 腳本如下:

<?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;
?>

只傳回布林值 true 或 false在 PHP 腳本中,jQuery Validate 現在可以正確判斷使用者名稱是否存在。

以上是為什麼我的 jQuery 驗證遠端方法顯示錯誤的使用者名稱可用性錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn