2011-02-01 13 views
0

JSONでjQueryオートコンプリートを使用していますが、結果のデータが正しく表示されません。 http://whatsmybeer.comに行って「firestone」と入力すると、正しい結果数で「未定義」と表示されるドロップダウンリストが表示されますが、JSONが正しく表示されません。 javacript http://whatsmybeer.com/search.inc.php?beer=firestone&callback=から呼び出されるJSON出力の例を見ることができますか?jQueryオートコンプリートが正しく表示されない

My JSスクリプトがJSON結果を表示します。

<script> 
    $(document).ready(function() { 
     $("#REMOTE").autocomplete({ 
      source: function(request, response) { 
       url = "search.inc.php?beer=" + request.term; 
       $.getJSON(url + '&callback=?', function(data) { 
        response(data); 
       }); 
      } 
     }); 
    }); 
</script> 

私は解析に何が間違っていますか?

+0

あなたのサイトは私のためにFirefoxをほとんどクラッシュしました。では、どこで解析していますか? – Victor

+0

これは役に立ちます:http://stackoverflow.com/questions/1592048/jquery-autocomplete-with-json-response –

+0

これは重複している可能性があります:http://stackoverflow.com/questions/3643309/jquery-autocomplete-json -response –

答えて

0

まずは、天気予報のためにデータを処理しようとしたときに、天気予報やその他の何らかのビールがブラウザに表示されていれば、最初の応答はです。誰かが含まれるように好きではないだろう場合は「」それはおそらく(データベースの半分を返しますになりますかのように

さらに私は1つの文字を入れてautocomplete2へのminLengthオプションを設定したいが、サーバ側のための過剰です2番目の文字を入力した後にオートコンプリートを追加すると、大きなデータベースでは特に自然です。

そして最も重要なのはです。正しい形式でJSON応答をフォーマットする必要があります。

あなたがオブジェクトを返す:

{ 
    beer_name: "name" 
} 

、あなたが返す必要があります:

{ 
    label: "autocomplete display value", 
    value: "input value after selection" 
} 

をラベルと値が同じであればそれだけでlabelを提供するのに十分であるべきで、次のことができるようにすべきですそれを複製しても安全に省略してください。value

+0

私は限界とminLengthを加えました。ラベルと値は同じなので、私はbeer_name: "name"しか持っていません。それでもJSON形式に何か問題はありますか? – beactive

+0

プロパティ名は値またはラベルでなければなりません - うまくいきませんのでビール名を返すことはできません - 恐らくは名前の配列を渡すことができます[ビール名01、ビール名02、.. ]] - これはjqueryUIのオートコンプリートモジュールの要件であり、それを動作させるにはそれを遵守しなければなりません。 –

+0

それは私の問題でした。私はラベルを削除し、ちょうどこの["ビール名01"、 "ビール名02"、...]のような配列名を返しました。スクリプトは今動作します。おかげでTom。 – beactive

関連する問題