私はこのコードを書きました。ユーザーが郵便番号または都市名を入力すると、クエリのようなものを使用してデータベースから取得します。問題は、都市と郵便番号の 2 つのフィールドを持つ約 1260 のレコードがあることです。
SELECT code, area FROM post_codes WHERE code LIKE '$q%' or area LIKE '$q%' ORDER BY area LIMIT 4
ユーザーが投稿した多くの質問を読み、オンラインでも調査しましたが、クエリ遅延を使用しても何も機能しません.データベース内のこれらのフィールドの両方にインデックスを付けました..レコードの取得が遅すぎます。これが最初の問題です。2番目の問題はユーザーが検索のためにそのテキストフィールドにいて、タブを押すと、検索をバイパスして無効なコードを書くことができます。これは、参照用の私のコードです。
$("#Postcode").autocomplete("get_codes2.php", {
width: 260,
queryDelay:0,
dataType: 'json',
parse: function(data) {
var array = new Array();
for(var i=0;i<data.length;i++)
{
array[array.length] = { data: data[i], value: data[i].areacode, result: data[i].areacode};
}
return array;
},
formatItem: function(row) {
return row.areacode;
}
}).result(function (){