You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP+MySQL数据库自动补全功能无数据返回问题求助

排查姓名自动补全失效的问题

我帮你梳理了代码里的几个关键问题,按顺序排查应该能解决自动补全不显示的问题:

1. 前端JS语法错误(最直接的原因)

看你的Autocomplete初始化代码,这里有个明显的语法错误:

$(function() {
  $( "#typeahead" ).autocomplete({
    source: 'typeaheads.php'; // 这里的分号是错误的!
  });
});

JavaScript对象的属性配置里,属性值结尾不能用分号,这会直接导致JS报错,Autocomplete根本无法初始化。改成下面这样:

$(function() {
  $( "#typeahead" ).autocomplete({
    source: 'typeaheads.php'
  });
});

2. 验证后端接口是否正常返回数据

先确认你的typeaheads.php能正确返回JSON:

  • 直接在浏览器地址栏访问 typeaheads.php?term=测试姓名(比如typeaheads.php?term=Andi),看看是否输出类似 ["Andi Surya","Andi Wijaya"] 的合法JSON数组。
  • 如果返回空白或报错,检查后端代码:
    • 确认数据库里的user表存在,且包含nama字段
    • 你的SQL语句存在严重的SQL注入风险,同时特殊字符可能导致SQL执行失败,建议改成预处理语句:
      $searchTerm = $_GET['term'];
      // 使用预处理语句避免注入和语法错误
      $stmt = $koneksi->prepare("SELECT nama FROM user WHERE nama LIKE ? ORDER BY nama ASC");
      $likeTerm = "%".$searchTerm."%";
      $stmt->bind_param("s", $likeTerm);
      $stmt->execute();
      $result = $stmt->get_result();
      $data = [];
      while ($row = $result->fetch_assoc()) {
        $data[] = $row['nama'];
      }
      echo json_encode($data);
      

3. 检查前端资源加载是否正常

你用的是//code.jquery.com/开头的CDN链接,确保你的页面是通过http://或https://协议访问的(不是直接打开本地文件的file://协议),否则这些JS/CSS资源可能加载失败。可以通过浏览器F12的「Network」标签,查看jQuery和jQuery UI是否成功加载。

4. 查看浏览器控制台报错

打开浏览器开发者工具(F12),切换到「Console」标签,看看有没有JS报错信息——这能快速定位Autocomplete初始化失败的具体原因。


内容的提问来源于stack exchange,提问作者Vanan Andreas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:56:46