0

ajaxリクエスト用にこのコードスニペットを用意しました:

<script type="text/javascript">
        $(document).ready(function() {
            $('#temp').click(function() {
                var username = $('#un').val();
                $.ajax({
                    url: "inter.php",
                    data: 'user=' + username,
                    cache: false,
                    type: 'GET',
                    success: function(data, textStatus, jqXHR) {
                        if (! data.length === 0) {

                            $('#msg').append('available');
                            $('#sub').removeAttr('disabled');
                        } else {

                            $('#msg').append("Username not available");
                            $('#sub').attr('disabled', 'true');
                        }
                    }
                });
            });
        });
    </script>

およびinter.phpのコード

<?php

$arr = array('one', 'two', 'three');
if (in_array($_GET['user'], $arr)) {
    echo "Username available";
} else {
    //echo "0";
}
?>

しかし、私はメッセージを受け取るたびにUsername not available.
誰でも助けることができますか?私はの初心者ですajax

EDIT
$_GET['user']
しかし、同じ問題が残ります。

4

3 に答える 3

2

問題:

data: 'user=' + username,
$_GET['un']

「ユーザー名」などに同じパラメーター名を使用していません。JS では「ユーザー」と呼んでいますが、PHP では「un」を探しています。

于 2013-07-15T11:05:57.577 に答える
1

を送信しています?user=someNameが、探してい$_GET['un']ます。に変更します$_GET['user']

于 2013-07-15T11:06:50.293 に答える
0

追加したコードをデバッグするには、次の行を追加します。

alert(data + " " + data.length);

success: function(data, textStatus, jqXHR) {

私のphpファイルから適切なメッセージを受け取っていることがわかりました。
次に、問題はハンドラーにあることがわかりました

if(!data.length === 0){

演算子は、比較全体で作業する必要があるかどうか!のみに取り組んでいます。 私はそれをに変更しましたdata.length

if(!(data.length === 0)){

そして今それは動作します。

于 2013-07-15T11:36:00.033 に答える