0

autocomplete.php を使用して、search.php コードのテキスト ボックスをオートコンプリートしようとしています。

私のphpコードが完全に機能し、jQueryのオートコンプリート機能に必要なものが正確にエコーバックされることを知っています。

テキストボックスのhtmlはこちら。

<input type="text" name='search' id="search" class="input-block-level" autocomplete="off" placeholder="search...">

オートコンプリート機能のスクリプトは次のとおりです

<script>
  jQuery(document).ready(function($){
    $('#search').autocomplete({source:'autocomplete.php', minLength:2});
  });
</script>

ここにphpファイルがあります

<?php


 if ( !isset($_GET['term']) )
exit;


$conn = odbc_connect('Abilis', 'infosysreader', 'Wilsons12'); 

$query = "SELECT TOP 10 [Del_ad1] FROM [Abilis].[dbo].[Customers] WHERE Del_ad1 LIKE    '%".$_GET['term']."%'";

$rs = odbc_exec($conn, $query);



$data = array();

for($i = 0; $i<odbc_num_rows($rs);$i++){
$row = odbc_fetch_array($rs, $i);

$data[] = array(
            'label' => $row['Del_ad1'],
            'value' => $row['Del_ad1']
);
}

// jQuery wants JSON data
echo json_encode($data);
flush();

編集:

html ファイルの最後にエラーが見つかりました。それは私の側の間違いでした。上記の方法で問題なく動作します。

4

1 に答える 1

1

問題が何であるかはわかりませんが、PHP は json でエンコードされた文字列を正しく返すため、オートコンプリート コールに問題があります。これを試して、違いがあるかどうか教えてください:

$('#search').autocomplete({
   minLength:2,
   source: function(request, response) {
       $.ajax({
         url: 'autocomplete.php', 
         dataType: 'json',
         data: { term : request.term },
         success: function(result) {
              response(result);
         }
       });
   }
});

また、に変更autocomplete="off"してみてくださいautocomplete="on"

入力要素から次を削除します。

class="input-block-level" autocomplete="off" placeholder="search..."

そして試してみてください<input type="text" name='search' id="search" />

于 2013-06-06T18:54:52.830 に答える