Javascript 如何将jquery ui自动完成小部件与数据库连接?

Javascript 如何将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

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;
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; ?>
    });
 });