这是我第一次在这里发布问题,因为通常我可以在之前提出的问题中找到答案,这一次我无法自行解决,所以我希望您能提供帮助。< / 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);
和我拥有的数据库
当我使用带有字母'B'或'ba'的自动完成功能时,我会得到bachaumont以及sofitel baltimor,但是当我输入'S'时我不会得到sofitel baltimor,很高兴知道我添加了一家酒店名为soufitel,当我键入“ SO”时,什么都没有出现,但是当我键入“ sou”时,出现soufitel。