我正在尝试将每个Ajax自动填充结果与特定网址(“目标网页”)相关联。
网址:www.aebli.com
,右上角的搜索字段,请尝试使用“h”或“ho”
搜索框的Ajax代码:
<script type="text/javascript" src="js/dimensions.js"></script>
<script type="text/javascript" src="js/autocomplete.js"></script>
<script type="text/javascript">
$(function(){
setAutoComplete("searchField", "results", "php/autocomplete.php?part=");
});
</script>
这里是文件“autocomplete.php”,它从MySQL数据库中选择特定的表:
<?php
$link = mysql_connect('localhost', 'root', 'root');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db("dreampix")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$result = mysql_query("SELECT name FROM treffer");
while ($row = mysql_fetch_assoc($result)) {
$colors[]=$row['name'];
}
mysql_free_result($result);
mysql_close($link);
// check the parameter
if(isset($_GET['part']) and $_GET['part'] != '')
{
// initialize the results array
$results = array();
// search colors
foreach($colors as $color)
{
// if it starts with 'part' add to results
if( strpos($color, $_GET['part']) === 0 ){
$results[] = $color;
}
}
// return the array as json with PHP 5.2
echo json_encode($results);
}
?>
正如您在www.aebli.com
上看到的那样,搜索字段有效,请尝试使用“ho”。 MySQL-Database-Table内容只有两行:id和一些条目,如“hochzeit”。如何将AJAX自动填充结果与<a href="#">
“连接”到特定目标网页,例如aebli.com/searchresluts
for“hochzeit”.php?
我希望用户搜索“ho”,获取一个列表,可以点击其中一个结果打开目标网页..
答案 0 :(得分:0)
首先,您应该将url列添加到treffer表,以便脚本知道每个术语与哪个URL相关联。然后修改您的脚本,以便它还返回JSON响应中的URL。
所以而不是:
["hochzeit"]
响应将如下所示:
[{"url":"/searchresluts", "name":"hochzeit"}]
然后你需要修改javascript部分。查看autocomplete documentation,我发现您需要替换默认的formatItem函数。请参阅this answer如何操作。