1

どうすればこれを機能させることができるのだろうと思っていましたか?デモファイルを読みましたが、このように動作させる方法があるかどうか興味があります。このようなphpファイルが1つあります

$query = "SELECT DISTINCT City FROM Locations ORDER BY City";
foreach($DBH->query($query) as $row)
{
    $array[] = $row['City'];
}
echo json_encode($array);

そしていくつかのjs

$('.searchbox').autocomplete('test.php', {minChars: 3,});

テストするとき、3 文字を入力すると、候補の代わりに json 配列全体が取得されます。この jquery-autocomplete がローカル データを操作できることはわかっていますが、その方法がわかりません。ちなみに、 https://github.com/dyve/jquery-autocomplete/がソースです。

4

3 に答える 3

2

オートコンプリートのソースとしてURL「test.php」を指定する場合、ページは指定された「term」リクエストパラメータで終了する名前を計算する必要があります。

ドキュメントから:

文字列が使用される場合、オートコンプリートプラグインは、その文字列がJSONデータを返すURLリソースを指すことを期待します。同じホストまたは別のホストに配置できます(JSONPを提供する必要があります)。オートコンプリートプラグインは結果をフィルタリングしません。代わりに、リクエストパラメータ「term」がURLに追加されます。これは、サーバー側スクリプトが結果をフィルタリングするために使用する必要があります。データ自体は、上記のローカルデータと同じ形式にすることができます。

つまりterm、SQLクエリでリクエストパラメータを使用して、結果をフィルタリングする必要があります。たとえば、

$query = "SELECT DISTINCT City FROM Locations where City like '".$term."%' ORDER BY City";
于 2012-06-27T06:21:47.933 に答える
1

ドキュメントには、バックエンドが JSON 配列を返す場合にremoteDataType値を持つオプションを設定する必要があると書かれています。json

remoteDataType (デフォルト値: false)

これが「json」に設定されている場合、オートコンプリータはサーバーからの JSON 配列を期待します。その他の設定では、デフォルトで lineSeparator と Cellseparator を使用したネイティブ テキスト形式になります (以下を参照)。

例えば

$('.searchbox').autocomplete('test.php', {
  minChars: 3,
  remoteDataType: 'json'
});

また、サーバー側のクエリは、入力されたものと一致する結果のみを返すためqに、オートコンプリーターが送信するパラメーターを利用する必要があります。GET

于 2012-06-27T06:15:09.950 に答える
0

入力テキストをGET変数としてtest.phpファイルに送信し、その変数を使用してクエリにフィルターを適用します。

于 2012-06-27T06:10:11.543 に答える