将JSON答案的AJAX自动填充答案链接到特定的URL /网页

时间:2011-05-06 15:19:07

标签: php mysql ajax json autocomplete

我正在尝试将每个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”,获取一个列表,可以点击其中一个结果打开目标网页..

1 个答案:

答案 0 :(得分:0)

首先,您应该将url列添加到treffer表,以便脚本知道每个术语与哪个URL相关联。然后修改您的脚本,以便它还返回JSON响应中的URL。

所以而不是:

["hochzeit"]

响应将如下所示:

[{"url":"/searchresluts", "name":"hochzeit"}]

然后你需要修改javascript部分。查看autocomplete documentation,我发现您需要替换默认的formatItem函数。请参阅this answer如何操作。