我正在尝试在我的网站上创建一个搜索栏,该搜索栏会在用户输入搜索结果时显示一系列暗示搜索结果。
因此,如果有人开始输入Hew
并且我的数据库中存在值Hewden
,然后这将显示在暗示性搜索结果下拉列表中
我的网页search.php上有以下html表单设置:
的search.php
<form action="include/search_source.php" method="post" name="searchForm">
<input type="text" name="search" class="Search_bar_box" id="search" autocomplete="off">
</form>
<script>
jQuery(document).ready(function($){
$('#search').autocomplete({source:'include/search_source.php', minLength:2, select: function (event, ui) {
window.location = 'search_results.php?search=' + ui.item.value;
}});
$('#searchForm').on("submit", function (event) {
event.preventDefault();
alert($('#search').val());
});
});
</script>
在search_source.php中,我有以下代码运行mysql查询,该查询假设从数据库中查找我的值:
search_source.php:
<?php
include 'config.php';
$rs = mysql_query('select * from supplier_stats where company_name like "'. mysql_real_escape_string($_REQUEST['term']) .'%" OR supplier_number like "'. mysql_real_escape_string($_REQUEST['term']) .'%" OR descrip like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by company_name asc limit 0,5');
// loop through each zipcode returned and format the response for jQuery
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['company_name'] .' - '. $row['supplier_number'] .' - '. $row['descrip'] ,
'value' => $row['company_name']
);
}
}
// jQuery wants JSON data
echo json_encode($data);
flush();
?>
然后我在 dashboard.php 页面中包含 search.php ,如下所示:
<?php include 'search.php'; ?>
由于某些原因,此代码适用于我的本地主机服务器,但不能在我的主服务器上运行。有谁能告诉我我做错了什么?或者可能告诉我一个更好的方法吗?提前致谢