0

ajax (jQuery) を使用してオートコンプリート タスクを実行しようとしています。スクリプトを見てみましょう

ここにHTMLがあります=>

<input type="text" name="user_key" id="user_key">

ここに同じファイル内のjavascriptがあります=>

<script type="text/javascript">
$(function(){
    $("#user_key").autocomplete({
        source: function(request,response){
            var suggestions = [];
            $.ajax({
                url: "/ajax/autocomplete.php",
                type: "POST",
                data: {user_key:$(this).val()},
                success: function(result){
                    $.each(result,function(i,val){
                        suggestions.push(val.name);
                    });
                },
                dataType: "json"
            });
            response(suggestions);
        }
    });
});
</script>

ここにautocomplete.phpファイルのphpスクリプトがあります=>

if (!$connection->connect_errno){
        if ($connection->set_charset("utf8")){
            if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){
                for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){
                    if ($row = $r->fetch_assoc()){
                        $array[$x] = array("name",$row['name']);
                    }
                }
                $r->free();
            }
        }
    }
    echo json_encode($array);

PS。うまくいきません。助けてください、私は過去 2 日間このタスクを達成しようとしてきましたが、うまくいきません。事前に感謝します:)

4

2 に答える 2

0
$array[$x] = array("name",$row['name']);

これは、データベースからの名前と値の両方を array() の要素として作成しています

autocomplete.php のコードを次のように変更します

if (!$connection->connect_errno){
        if ($connection->set_charset("utf8")){
            if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){
                for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){
                    if ($row = $r->fetch_assoc()){
                        $array[$x] = array("name"=>$row['name']);
                    }
                }
                $r->free();
            }
        }
    }
    echo json_encode($array);

これにより、データベースからフェッチされた値のキーとして名前が作成されます

これはあなたを助けるでしょう。

于 2012-08-03T13:00:09.850 に答える
0

オートコンプリート ドキュメントをもう一度見る必要がありますが、ここで答えを見つけることができます: jquery auto-suggestion example does not work

于 2012-08-03T15:45:49.160 に答える