ajaxを介してjqueryオートコンプリートに多次元jsonアレイを渡すのを手伝ってください
-
23-09-2019 - |
質問
JQueryとAutoCompleteプラグインを使用して、写真サイトにライブ検索を実装しようとしています。データをローカルに指定すると、すべてが機能します。
var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];
ただし、これをPHPに移動すると、JQueryは結果を適切に解析できません。ここで何が起こっているのか本当にわかりません。私の現在のコードは以下にあります:
<script>
$(document).ready(function(){
var data = '/livesearch';
$("#aut_field").autocomplete(data, {
formatItem: function(item) {
return item.text;
}
}).result(function(event, item) {
location.href = item.url;
});
});
</script>
そして、私のPHPスクリプトは、次の形式で多次元配列を印刷します。
{"1":{"text":"Google Website","url":"http:\/\/www.google.com"},
"2":{"text":"Yahoo Website","url":"http:\/\/yahoo.com"},}
ただし、アラート(item.text)を行うと、変数は未定義と表示されます。
アラート(アイテム)を行うと、文字列全体がPHPによって出力されたと思われます。
eval()で遊んでみましたが、どこに置くべきか、またはJSに実際にデータを解釈する方法がわかりません。ご協力いただきありがとうございます。私の実装に固有のサンプルコードを大歓迎します。
解決
既に説明したように、ビューはリスト内のすべてのタスク(> 5000項目)に問い合わせ、(> 5000)すべての項目(> 5000)をポージネーションでバッチで返します。WebPartが機能するためには、5000項目未満の項目を照会する必要があり、5000項目未満の項目も返さなければなりません。フィルタリング列も索引付けされている必要があります。
現実的に言えば、あなたのオプションには次のものが含まれます:
- 現在のユーザーに割り当てられているタスクを表示する場合は、 '[Me]に割り当てられたフィルタを使用してビューを作成し、割り当てられた列に索引付けします。
- すべてのユーザーのタスクを表示したい場合は、不完全なタスクを表示することをお勧めします。この場合、フィルタステータス 'が完了した状態ではなく、ステータスフィールドに索引付けして索引を作成する必要がある場合があります。
他のヒント
このパターンをPHPで試してください:
[
{"text":"Google Website","url":"http:\/\/www.google.com"},
{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]
そして、あなたのPHPスクリプトは多次元配列を返します/物体 ミックス。あなたが主張する場合(あなたはいくつかの「テキスト: "amd" url; "でvarを爆破します)それはshou1ldです:
[[{"text":"Google Website","url":"http:\/\/www.google.com"}],[{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}]]
より良い:
var x=[["Google Website","http:\/\/www.google.com"],["Yahoo Website","http:\/\/yahoo.com"]];
Yahooにジャンプしたい場合:var url = x [1] [1];
または:
var x={"Google_Website":"http:\/\/www.google.com","Yahoo_Website":"http:\/\/yahoo.com"};
Google_Websiteにジャンプしたい場合:var url = x ["google_website"];
私のヒント:訪問 ここにリンクの説明を入力してください