自动完成中没有输出

时间:2014-06-22 02:14:18

标签: php jquery

我使用自动填充来实现Google搜索,搜索建议位于下拉列表中,同时输入我正在搜索的内容。

我的代码输出

enter image description here

HTML

    <td width="155"  bgcolor="#999999">Client Name</td>
    <td width="218" bgcolor="#999999"><input type="text" name="clientname" id="clientname" class="forinput" /></td>

脚本

   <script type="text/javascript">
      $(document).ready(function() {
  $( "#clientname" ).autocomplete(
   {
     source:"getautocomplete.php",
     minLength:1
    })
       });
    </script>

getautocomplete.php

  ..databaseconnection
  $term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends

  $qstring = "SELECT clientname FROM client WHERE clientname LIKE '%".$term."%'";
  $result = mysql_query($qstring);//query the database for entries containing the term

  while ($row = mysql_fetch_array($result,MYSQL_ASSOC))//loop through the retrieved values
   {
    $row['clientname']=htmlentities(stripslashes($row['clientname']));
    $row_set[] = $row;//build an array
   }
   echo json_encode($row_set);//format the array into json data

我想要实现的目标
      enter image description here

我检查我的数据库连接及其正确。任何人都可以向我解释我做错了什么吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

根据jQueryUI is expecting的内容,我认为您发回的结果无效。

现在您正在构建一个数组数组,您应该只返回值(假设labelvalue相同,即客户端的名称):

// $row['clientname']=htmlentities(stripslashes($row['clientname']));
$row_set[] = htmlentities(stripslashes($row['clientname']));    //build an array

另请注意有关已弃用的mysql_*函数和sql注入的注释。