javascript自动完成功能无法使用数据库中的所有信息

时间:2018-08-24 14:01:48

标签: javascript php jquery ajax

这是我第一次在这里发布问题,因为通常我可以在之前提出的问题中找到答案,这一次我无法自行解决,所以我希望您能提供帮助。< / p>

问题是我使用jQuery自动完成小部件从数据库中获取信息,并请求从酒店表中获取所有酒店名称,我确定我已获取所有酒店,但自动完成功能似乎不起作用与其中一些, 例如,我有5家酒店:batchmor,sofitel drive,sofitel bartimela,marselle和Juliana。当我按'b'时,将会出现batchmor和sofitel bartimela,但是当我按's'时,不会出现sofitel驱动程序或sofitel bartimela,并且我不知道错误的根源。

我将用于调用外部PHP文件的jQuery代码放在此处:

//javascript code 
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> 
   <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
   <script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
</head>
<body>
    <form>
         <input type="text" id="recherche" />
    </form>
    <script type="text/javascript">
       $('#recherche').autocomplete({
          source : 'cnxtobase.php'
        });
    </script>
</body>

cnxtobase.php文件中有代码

if(isset($_GET['term'])){
    $array = array();
}

try{
    $conn = new PDO('mysql:host=localhost;dbname=Lodging','root','');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $conn->prepare('SELECT name FROM hotel WHERE name LIKE:term');
    $stmt->execute(array(':term' =>'%'.$_GET['term'].'%'));

    foreach ($stmt->fetchAll() as $value) {
        array_push($array, $value['name']);
    }
}catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
echo json_encode($array);  

和我拥有的数据库

the database

当我使用带有字母'B'或'ba'的自动完成功能时,我会得到bachaumont以及sofitel baltimor,但是当我输入'S'时我不会得到sofitel baltimor,很高兴知道我添加了一家酒店名为soufitel,当我键入“ SO”时,什么都没有出现,但是当我键入“ sou”时,出现soufitel。

0 个答案:

没有答案