我有以下几点
<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进行消毒。
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"} }
但是,由于某种原因,它在页面上声明“没有找到结果”,即使有?
发布于 2014-11-29 15:29:37
您的php-script创建的输出是无效的json -您必须将各个对象包装在一个数组中:
[{"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脚本如下:
$result = array();
while ($row = mysqli_fetch_array($result)) {
$result[] = $row;
}
json_encode($result);除此之外,您的输出应该具有属性id、值和标签,而不仅仅是"0“。
https://stackoverflow.com/questions/27203768
复制相似问题