1

jQuery とオートコンプリート プラグインを使用して、写真サイトにライブ検索を実装しようとしています。データをローカルに指定すると、すべてが機能します。

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"},}

ただし、alert(item.text) を実行すると、変数は未定義と表示されます。

alert(item) を実行すると、PHP によって出力された文字列全体が表示されます。

eval() をいじってみましたが、どこに置くべきか、または JS に実際にデータを解釈させる方法がわかりません。ご協力いただきありがとうございます。私の実装に固有のサンプル コードは高く評価されています。

4

3 に答える 3

1

あなたのPHPでこのパターンを試してください:

[
   {"text":"Google Website","url":"http:\/\/www.google.com"},
   {"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]
于 2010-01-27T08:00:01.807 に答える
1

問題はphpコードにあります。

あなたの仕事は、作業中の JavaScript 配列の構造を模倣することです。php の json_encode() を参照してください

于 2010-01-27T07:52:54.943 に答える
0

そして、PHP スクリプトは多次元配列とオブジェクトの組み合わせを返します。あなたが主張するなら (いくつかの "text:" と "url;" で var を爆破する)、次のようにすべきです:

[[{"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 Web サイトにジャンプする場合: 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"];

ヒント: ここにアクセスして、リンクの説明を入力してください

于 2013-04-16T08:26:27.770 に答える