0

結果を最大 10 に制限したいのですが、以下のコードが機能しません。Uncaught SyntaxError : Unexpected identifier error on line が表示されますvar results = 'search-db.php';

<html>
<head>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            $('#textbox_postcode').autocomplete(
            {
                var results = 'search-db.php';

                source: response(results.slice(0, 10));,
                minLength: 3
            });
        });
    </script>
</head>

<body>
    <input type="text" id="textbox_postcode" value="" />
</body>
</html>
4

1 に答える 1

2

コメントで既に述べたように、これは有効な JavaScript ではありません。

ドキュメントには、データを取得するさまざまな方法が記載されています。

表示されるアイテムの数を制限したいので、2 つの可能性があります。

  • サーバーが 10 個のアイテムのみを返すようにします。とにかく使用しないデータの転送を避けるため、これは最も賢明なソリューションです。

  • としてコールバックを使用しsource、Ajax リクエストを行い、それに応じてデータを準備します。

2 番目のソリューションの例を次に示します。

$('#textbox_postcode').autocomplete({
    source: function(request, callback) {
        $.getJSON('search-db.php', request).then(function(items) {
            // success
            callback(items.slice(0,10));
        }, function() {
            // error - callback must always be called as per documentation
            callback([]);
        });
    },
    minLength: 3
});
于 2012-08-01T12:42:16.003 に答える