オートコンプリートプラグインを使用して、 IMDBにあるような検索ボックスを作成しようとしています。
- オプションにテキスト以上のものを表示します。
- オプションが選択されたときにリンクのように機能するため(各オプションは一意のレコードになるため)。
- つまり、ユーザーが選択した場合、ボタンを押すと、入力に対して検索が実行されます。
ドキュメントによると、動作するデータソースには3つのタイプがあります。
データソースは次のとおりです。
ローカルデータを含む配列
文字列、URLを指定する
コールバック
オートコンプリートを2番目のオプションで機能させることはできますが、返されたデータを変換する機能はありません。JSONを取得して、ドロップダウンに直接配置します。これは、ソースURLがデータを返すことができるのはの形式のみであることを意味します{label: "blah", value: "blurg"}
。
変換関数を挿入できれば、URLに好きなJSONを返すことができます。この関数は、データをオートコンプリートが期待する形式に変更するだけでなく、希望どおりにフォーマットします。すべて、URLによって提供される応答を変更する必要はありません(そこからHTMLを返すのではなく、JSONのみを返します)。
たとえば、URLはこれを返す可能性があります:
{ label:"Grosse Point Blank", id: 3, img:"/imgs/gpb.png",...}
そして、変換関数はそれを次のようなものに変えることができます:
{ label:"<a href='/films/3/grosse-point-blank'><img src='/imgs/gpb.png' />Grosse Point Blank</a>", value="grosse-point-blank"}
オプション3、コールバック、コールを使用してみましたが、機能しgetJSON
ません。私が見つけた最も近いコードはここにありますが、オートコンプリートの現在のドキュメントにリストされていないオプションがあり、応答オブジェクトの使用方法がわかりません。
AJAXリクエストでコールバックメソッドを使用する例、またはコードを変換する関数を挿入する方法を誰かが知っているなら、私は非常に感謝しています。
洞察や助けは大歓迎です。