我正在尝试将我的 Bootstrap 搜索栏(它使用预先输入)连接到一个远程 SQL 数据库,其中包含不同的食物。我知道预输入在某种程度上是有效的,因为当我输入“C”时,会弹出“Chicago”这个词,但是,“Chicago”不在我的 SQL 数据库中。我正在关注YouTube 上的本教程。
这是我的网页的 HTML/PHP 代码:
这是我的搜索条形码:
<form class="navbar-search">
<input type="text" id="search" class="search-query span3 pull-right" placeholder="Search" data-provide="typeahead">
<div class="icon-search"></div>
</form>
这是我页面底部的 JS 代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery-1.9.0.min.js"><\/script>')</script>
<!-- Bootstrap jQuery plugins compiled and minified -->
<script src="js/bootstrap.min.js"></script>
<!-- Bootstrap JS Code -->
<script>
$(document).ready(function(){
$('#search').typeahead({
source: function(query, process) {
$.ajax({
url: 'database.php'
type: 'POST';
data: 'query=' + query;
dataType: 'JSON';
async: true;
success: function(data) {
process(data);
}
});
}
});
});
</script>
这是我应该访问 SQL 数据库的 database.php 代码:
<?php
if (isset($_POST['query'])) {
// Connect to database
mysql_connect('localhost','root','root');
mysql_select_db('Menu_Items');
// Retrieve the query
$query = $_POST['query'];
// Search the database for all similar items
$sql = mysql_query("SELECT * FROM foods WHERE name LIKE '%{$query}%'");
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
$array[] = row['name'];
}
// Return the json array
echo json_encode($array);
}
?>
数据库信息如下:
数据库名称:Menu_Items
表名:食物
该表由 2 列组成,第 1 列是唯一 id,第 2 列标题为“名称”。
我似乎无法弄清楚我哪里出了问题,据我所知,我已经正确地遵循了教程。关于我在哪里搞砸的任何想法?