首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery UI自动完成-没有找到结果

jQuery UI自动完成-没有找到结果
EN

Stack Overflow用户
提问于 2014-11-29 15:18:10
回答 1查看 131关注 0票数 0

我有以下几点

代码语言:javascript
运行
复制
<form action="" method="post">
  <input type="text" class="auto" name="search" autocomplete="off">
</form>

<script>
  $(document).ready(function($){
    $('.auto').autocomplete({
     source:'connect.php',
     minLength:1
    });
  });
</script>

connect.php,我知道在将它输入到我的查询之前,我必须对$term进行消毒。

代码语言:javascript
运行
复制
if(isset($_GET['term'])) {
  require "db.php";

  $con = mysqli_connect("$host","$user","$password","$db");

  if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

  $term = $_GET['term'];
  $query = "SELECT `name` FROM `products` WHERE `name` LIKE '%$term%'";
  $result = mysqli_query($con, $query);

  while ($row = mysqli_fetch_array($result)) {
    echo json_encode($row);
  }
}

如果我在输入字段中键入M并使用铬工具检查响应,则得到以下结果。

{"0":"MacBook Pro 13-英寸“,”名称“:”MacBook Pro 13-英寸“}{”0“:”MacBook Pro 15-英寸“,"name":"MacBook Pro 15-英寸”}{“0”:“MacBook Air 13-英寸”,"name":"MacBook Air 13-英寸“}{”0“:”MacBook Air 11-英寸“,"name":"MacBook Air 11-英寸”}{“0”:“iMac 21.5-英寸”,“名称”:“iMac 21.5-英寸”}{“0”:“iMac 27-英寸”,“名称”:“iMac 27-英寸”}{“0”:“Mac四芯”,“名称”:“Mac四芯”}{“0”:“Mac 6-Core",”名称“:”Mac 6-Core"} }

但是,由于某种原因,它在页面上声明“没有找到结果”,即使有?

EN

回答 1

Stack Overflow用户

发布于 2014-11-29 15:29:37

您的php-script创建的输出是无效的json -您必须将各个对象包装在一个数组中:

代码语言:javascript
运行
复制
[{"0":"MacBook Pro 13-inch","name":"MacBook Pro 13-inch"}, {"0":"MacBook Pro 15-inch","name":"MacBook Pro 15-inch"}, {"0":"MacBook Air 13-inch","name":"MacBook Air 13-inch"}, {"0":"MacBook Air 11-inch","name":"MacBook Air 11-inch"}, {"0":"iMac 21.5-inch","name":"iMac 21.5-inch"}, {"0":"iMac 27-inch","name":"iMac 27-inch"}, {"0":"Mac Pro Quad-Core","name":"Mac Pro Quad-Core"}, {"0":"Mac Pro 6-Core","name":"Mac Pro 6-Core"}]

修改PHP脚本如下:

代码语言:javascript
运行
复制
$result = array();
while ($row = mysqli_fetch_array($result)) {
    $result[] = $row;
  }

json_encode($result);

除此之外,您的输出应该具有属性id、值和标签,而不仅仅是"0“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27203768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档