0

Prototype を使用してフォームを検証するコードがいくつかありますが、jQuery ajax 関数を追加して、ユーザー名がデータベースに既に存在するかどうかを確認したいと考えています。ただし、jQuery によって返される値は常にオブジェクトであり、ユーザー名が存在するかどうかのブール値ではありません。これまでの私のコードは次のとおりです。

検証.js

//Using Prototype
Validation.addAllThese([

    ['validate-username', 'Username already exists. Please choose another one.', 
      function (v) {     //v is the value of the username field in the form.

        //Using jQuery
        var match = jQuery.ajax({
                        url: "/php/ajax/check_username_exists.php",
                        data: {username: v},
                        async: false
                    });
        return (match.responseText == v);

]);

check_username_exists.php

<?php
include '../library.php';
include '../config.php';

//Echo string username if matches
echo select_row("USERNAME", "members", "USERNAME='".$_GET['username']."'");
?>

これを含む StackOverflow の他のスレッドを確認しましたが、問題を解決しているようには見えません。

ありがとう

4

1 に答える 1

1

OK、ソリューションコードは次のとおりです。

var match = jQuery.ajax({
    url: "/php/ajax/check_username_exists.php",
    data: {username: v},
    async: false
});
return (match.responseText != v);

無効化された場合、戻り値はfalseになるはずでした。したがって、 falseであるはずのユーザー名が存在する場合はtrueを返しました。からへの簡単な変更で問題が修正されました。==!=

于 2013-05-23T21:55:37.560 に答える