ajaxを介してjqueryオートコンプリートに多次元jsonアレイを渡すのを手伝ってください

StackOverflow https://stackoverflow.com/questions/2145035

質問

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項目未満の項目も返さなければなりません。フィルタリング列も索引付けされている必要があります。

現実的に言えば、あなたのオプションには次のものが含まれます:

  1. 現在のユーザーに割り当てられているタスクを表示する場合は、 '[Me]に割り当てられたフィルタを使用してビューを作成し、割り当てられた列に索引付けします。
  2. すべてのユーザーのタスクを表示したい場合は、不完全なタスクを表示することをお勧めします。この場合、フィルタステータス 'が完了した状態ではなく、ステータスフィールドに索引付けして索引を作成する必要がある場合があります。

他のヒント

このパターンを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"];

私のヒント:訪問 ここにリンクの説明を入力してください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top