3

Jquery のオートコンプリートを使用して、mysql データベースからオプションのリストを取得し、検索時に出力しています。ただし、検索クエリが入力されたときに小さなプリロード gif を追加したいので、1 分ほどかかることもあります。Google と here を検索しましたが、必要な答えが見つかりませんでした。誰かがそれを助けることができれば、それは大歓迎です! ここに私のコードがあります:

Jクエリ:

<script>
$(document).ready(function() {
  $("#keywords").autocomplete({
    source: keywordList,
    minLength: 2,
    select: function(event, ui){
        $("#keywords").val(ui.item.value);
        } 
  });
});
</script>
<?php echo keywordArray(); ?> 

//これは、データベースから配列を取得して出力しています。これを行うコードは次のとおりです。

    function keywordArray()
{
  $rsKeywords = mysql_query("SELECT Destination FROM Destinations WHERE Country = 'Mexico'");

  $output = '<script>'."\n";
  $output .= 'var keywordList = [';

  while($row_rsKeywords = mysql_fetch_assoc($rsKeywords))
  {
    $output .= '"'.$row_rsKeywords['Destination'].'",';
  }

  $output = substr($output,0,-1); //Get rid of the trailing comma
  $output .= '];'."\n";
  $output .= '</script>';
  return $output;
}

HTML:

<input id="keywords" name="keywords" type="text" autocomplete="off" size="40" >
4

1 に答える 1

5

あなたのcssにこれを追加してください:

.ui-autocomplete-loading { background:url('img/indicator.gif') no-repeat right center }

img/indicator.gif画像のプリロードパスに置き換えます。プリロードを左側に配置する場合は、rightによって変更することもできますleft

js:

$("#keywords").autocomplete({
    source: keywordList,
    minLength: 2,

    search  : function(){$(this).addClass('ui-autocomplete-loading');},
    open    : function(){$(this).removeClass('ui-autocomplete-loading');},

    select: function(event, ui){
        $("#keywords").val(ui.item.value);
        } 
于 2012-05-02T16:50:21.927 に答える