Javascript 如何将jquery ui自动完成小部件与数据库连接?
upload.phpJavascript 如何将jquery ui自动完成小部件与数据库连接?,javascript,php,jquery,html,json,Javascript,Php,Jquery,Html,Json,upload.php <?php include('lib.php'); $text = $mysqli->real_escape_string($_GET['term']); $query = "SELECT * FROM user WHERE area LIKE (:keyword) ORDER BY id ASC LIMIT 0, 10"; $result = $mysqli->query($query); $json = '['; $first = true; wh
<?php
include('lib.php');
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT * FROM user WHERE area LIKE (:keyword) ORDER BY id ASC
LIMIT 0, 10";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['area'].'"}';
}
$json .= ']';
echo $json;
?>
area_list.js
$(function(){
var test=["red","blue","pink","Black" ,"Grey"];
$("#term2").autocomplete({
source:'<?php include upload_where.php; ?>'
});
});
$(函数(){
var测试=[“红色”、“蓝色”、“粉色”、“黑色”、“灰色”];
$(“#术语2”)。自动完成({
来源:“”
});
});
HTML
如果您认为代码是正确的,是否有可能我的服务器不支持json,因为我以前没有使用json。您不能在javascript中包含php。 因此,您需要为自动完成创建一个php脚本。 在这个脚本中,最好使用数组存储结果,然后使用“json_encode”将其转换为json autocomplete.php:
<?php
include('lib.php');
if(true === isset($_GET['term']) && false === empty($_GET['term']))
{
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT * FROM user WHERE area LIKE (:keyword) ORDER BY id ASC
LIMIT 0, 10";
$result = $mysqli->query($query);
$json = array();
$first = true;
while($row = $result->fetch_assoc())
{
$json[] = $row['area'];
}
header('Content-Type: application/json');
echo json_encode($json);
}
?>
您使用字符串作为输入,但确实需要一个数组作为自动完成源 如果您不想编写ajax请求代码,并且如果您的js是由php动态生成的,您可以用以下代码替换您的代码:
$(function(){
var test=["red","blue","pink","Black" ,"Grey"];
$("#term2").autocomplete({
source:<?php include upload_where.php; ?>
});
});
$(函数(){
var测试=[“红色”、“蓝色”、“粉色”、“黑色”、“灰色”];
$(“#术语2”)。自动完成({
资料来源:
});
});
但是,使用php生成js不是一个好主意。因此,您可以使用ThinkTank answer的,您的js代码是由PHP生成的还是仅仅是一个静态文件?我不知道,当我在java脚本中使用数组作为源时,它可以工作,但当我尝试使用数据库作为源时,它不工作。您的json中没有属性
“label”
$('#term2').autocomplete({
minChars:2,
noCache: false, //default is false, set to true to disable caching
// callback functions:
source: function( request, response ) {
$.ajax({
url: "autocomplete.php", //Correspond to PHP page
dataType: "json",
data: {term: request.term},
success: function(data) {
return data;
}
});
}
});
$(function(){
var test=["red","blue","pink","Black" ,"Grey"];
$("#term2").autocomplete({
source:<?php include upload_where.php; ?>
});
});