0

単純なテキストボックスをオートコンプリートボックスにするために、次のコードを使用しています。

var sourceURLRide = "index.php?page=getRideAndParksJson&type=rides&keyword=";
$("#fav_rides_select").autocomplete({
            source: sourceURLRide,
            minLength: 1,
            delay: 0
});

ただし、fav_rides_selectで発生するすべてのキーアップイベントでソースを変更する必要があります。つまり、ソースURLが変更された後、結果をurlからフェッチする必要があります。しかし、それは機能していません。ソースをキーアップイベントと同期するために次のコードを使用しています。

$("#fav_rides_select").keyup(function(){
            $("#fav_rides_select").autocomplete("option","source",sourceURLRide + encodeURIComponent($("#fav_rides_select").attr("value")) );
});

注:キーワードをphpスクリプトに渡すためにkeyupイベントを使用しているため、関連する結果のみが表示されます。

4

2 に答える 2

1

うーん、あなたはあなたの例でオブジェクトを渡していません。私のコードを試してください(最初のスニペットと同様):

$("#fav_rides_select").autocomplete({ source: sourceURLRide + encodeURIComponent($("#fav_rides_select").attr("value")) });
于 2012-09-22T17:39:59.297 に答える
1

ドキュメントの準備ができた直後にJSON全体をロードする必要があります。または、JSONのサブセットをロードできる場合は、それが本当にビッグデータである場合に限ります。

これは、現在のクエリの状態を記憶しているビッグデータに対してそれを行う方法に関する優れた記事です。

Googleでない場合は、次のコードを使用できます。

$(document).ready(function(){
  var data = $.getJSON('index.php?page=getRideAndParksJson&type=rides',function(data){
    $('#fav_rides_select').autocomplete(
      source: data,
      minLength: 1,
      delay: 0);
  });
});
于 2012-09-22T17:53:21.907 に答える