【问题标题】:Fetching data from MYSQL using Autocomplete no result found使用自动完成从 MYSQL 获取数据未找到结果
【发布时间】:2014-06-17 04:53:38
【问题描述】:

我想要像谷歌那样的搜索。当您开始输入时,下拉列表中会列出建议,因此我使用了自动完成功能。我的问题是当我输入任何键时,即使我输入的数据在我的数据库中,输出也是“未找到结果”。我检查了我的数据库连接及其正确性。有人可以向我解释我做错了什么吗?

HTML

   <input type="text" name="clientname" id="clientname" />

php 这部分已编辑,我尝试了@asik 的建议但仍然无法正常工作

文件名:getautocomplete.php

   if (isset($_REQUEST['term'])){
$return_arr = array();

    $stmt = $con->prepare('SELECT * FROM client WHERE CLIENTNAME LIKE :term');
    $stmt->execute(array('term' => '%'.$_GET['term'].'%'));
    while($row = mysqli_fetch_assoc($stmt)) {
        $return_arr[] =  $row['CLIENTNAME'];            
    }
    echo json_encode($return_arr);
        }
        else
        {
     echo 'ERROR: ' . $e->getMessage();
    }

JavaScript

    $(function() {
      $("#clientname" ).autocomplete({
      source: "getautocomplete.php"
   });
  });

提前致谢

【问题讨论】:

  • 我认为,您正在使用 jquery 自动完成功能。默认情况下,作为参数“术语”发布的值。因此您可以将 $_REQUEST['clientname'] 更改为 $_REQUEST['term']
  • 我将所有客户端名称更改为术语,然后将 mysql_* 更改为 mysqli。但仍然无法正常工作。我应该在 if 语句之前添加一些内容吗?谢谢
  • 使用FirebugChrome Deve Tool查看getautocomplete.php发送的内容

标签: php jquery mysql


【解决方案1】:

试试这个,你在命名参数中缺少:

$stmt = $con->prepare('SELECT CLIENTNAME FROM client WHERE CLIENTNAME LIKE :term');
$stmt->execute(array(':term' => '%'.$_REQUEST['term'].'%'));

希望这可行,如果不是,您可以尝试将响应格式化为 labelvalue

$return_arr[] =  array('label' => $row['CLIENTNAME'], value => $row['CLIENTNAME']);  

仍然无法使用Firebug 回复getautocomplete.php 的截图

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 2012-07-31
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多