2011-06-17 10 views
2

私はJQueryのオートコンプリート機能が初めてです。私はこのコードが正しく動作するようにしようとしています。以下のコードは、誰かが入力フィールドに入力するたびにajaxポーリングを正しく行います。しかし、それはオートコンプリートをドロップしません。JQueryオートコンプリートをAjaxとJSONで使用するにはどうすればよいですか?

$(document).ready(function() { 
    $("#search").autocomplete({ 
    source: 'cityajax' 
    }); 
}); 

これは、サーバーから正常に取得されたファイルです。 mime/contentタイプはtext/jsonに設定されています。

実際にソースがJavaScript自体のインラインJSON varに設定されている場合、同じことがうまく動作します。この問題は、何かばかげた単純なものになるはずですが、私は過去1時間半を費やして、何が間違っているのかを突き止めようとしており、私はロードブロッキングにいます。私はいくつかの必要なパラメータが欠けていますか?

EDIT:私の "json"をこの有効なJSONに変更しましたが、それと同じ問題です。

{"1": "Overland Park","1": "Hiawatha","1": "Columbus","1": "Lenexa","1": "Pittsburg","1": "Dodge City"} 

EDIT:これに私の「json」を再度変更しました。

[{"1": "Overland Park"},{"2": "Hiawatha"},{"3": "Columbus"},{"4": "Lenexa"},{"5": "Pittsburg"},{"6": "Dodge City"}] 

EDIT:これに私の「json」を変更して、すべてが良好でした。

[{"label": "Overland Park"}、{"label": "Hiawatha"}、{"label": "Columbus"}、{"label": "Lenexa"}、{"5" : "Pittsburg"}、{"label": "Dodge City"}]

+1

JSONを使用するよりもローカル検索ではなく、アヤックスをしたい場合配列ではありませんが、常に '{...} 'で囲まれています。データをフェッチし、配列を解析してその配列を '.autocomplete'に渡す必要があります。 – pimvdb

+1

これを試してみてください:[{'label': 'Overland ..'}、{'label': 'Anonymus'}] 1,2,3使用ラベルの横にあります。 –

答えて

1

使用した方法は間違いなく機能しません。私はあなたがどのようにデータが確実にそこに到達しているのかを疑問に思います。 Firebug経由でXHRで見ていますか?プラグインのリモートソース機能を使用していない場合、どのように呼びますか?

あなたが定義した通りに、ファイル拡張子はありません。だから、それは有効ではないcityajaxと呼ばれる文字列にソースを設定しています。あなたのデータソースがcityajaxという変数ならば、その変数を引用符なしでそこに入れることができます。

Jsonlintあなたのデータの妥当性をテストすることができます。

+0

これはKohana MVCフレームワークです。それが有効で、呼び出しはFirebugのネットビューで行われます。この "JSON"をこの有効なJSONに変更しました。 「オーバーランドパーク」、「1」:「Hiawatha」、「1」:「Columbus」、「1」:「Lenexa」、「1」:「Pittsburg」、「1」:「Dodge」 City '} – Caimen

+1

このJSONは良くありません。[{' label ':' Overland .. '}、{' label ':' Anonymus '}] –

+0

最後に、私の問題は有効なJSONを持っていない、upvote Jsonlist、非常に便利です。 – Caimen

1

autocompletのための簡単な例:search.php

<?php 
    echo [{"label":"Overland Park"},{"label":"Hiawatha"}] 
?> 

$("#test").autocomplete({ 
      source: "search.php" 
         }) 

次のコード

var cityajax = ['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission'] 

$(document).ready(function() { 
    $("#search").autocomplete({ 
    source: cityajax 
    }); 
}); 
+0

最後に私の問題は有効なJSONを持っていないだけでした。 – Caimen

関連する問題