php - 自动完成数据分类

标签 php jquery mysql

我在搜索文本框中使用了自动完成框。它对我来说工作正常...这是我的脚本..

<?php

require_once('database.php');

if(isset($_POST['queryString'])) {

    $queryString = $dbc->real_escape_string($_POST['queryString']);

    if(strlen($queryString) >0) {
        $q = "SELECT keyword 
                FROM (
                    SELECT tname AS keyword FROM t
                    UNION
                    SELECT sname AS keyword FROM sub
                    UNION
                    SELECT cname AS keyword FROM c
                    UNION
                    SELECT iname AS keyword FROM i
                ) s
              WHERE keyword LIKE '%$queryString%' 
              LIMIT 10";

        $r = mysqli_query ( $dbc, $q);

        if($q) {
            while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) {
                echo '<li onClick="fill(\''.$row['keyword'].'\');">'.$row['keyword'].'</li>';
            }
        } else {
            echo 'ERROR: There was a problem with the query.';
        }
    } else {

    }
} else {
    echo 'There should be no direct access to this script!';
}

?>

问题是我的自动完成框显示主题、导师姓名、机构等相关关键字的所有结果。现在我想在自动完成框中对它们进行分类.. 例如:学科类别下的科目、导师类别下的导师姓名等…我想做的是类似于 facebook 搜索选项..

这是我的 jQuery:

<script type="text/javascript">

    function lookup(inputString) {

        if(inputString.length == 0) {
            $('#suggestions').hide();
        } else {
            $.post("rpc.php", {queryString: ""+inputString+""}, function(data){
                if(data.length >0) {
                    $('#suggestions').show();
                    $('#autoSuggestionsList').html(data);
                }
            });
        }
    }

    function fill(thisValue) {
        $('#inputString').val(thisValue);
        setTimeout("$('#suggestions').hide();", 200);
    }

</script>

有人可以帮我吗? 谢谢。

最佳答案

使用搜索文本输入附近的下拉列表来选择类别或多个复选框,以查看您需要进行哪种联合?我会推荐你​​Sphinx http://sphinxsearch.com/

尝试

SELECT 1 as type,tname AS keyword FROM t
                    UNION
                    SELECT 2 as type,sname AS keyword FROM sub
                    UNION
                    SELECT 3 as type,cname AS keyword FROM c
                    UNION
                    SELECT 4 as type,iname AS keyword FROM i

foreach($results as $result)
{
    switch($result['type'])
    {
        case 1:
        $cat_1[]=$result;
        break;

        case 2:
        $cat_2[]=$result;
        break;
    }

}

关于php - 自动完成数据分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13560808/

相关文章:

javascript - 自定义有效性至少选择一个复选框jquery

javascript - 如何在 ASP.NET GridView 上应用 Datatable jquery?

javascript - 无法使用自定义属性更改 Select2 下拉菜单的字体颜色

php - 在超链接中使用 onclick 打开具有 id 的 div

php - 在 codeigniter 中分离站点和管理员

javascript - ajax 表单无法正常工作

php - 从两个不同的来源加入同一张 table

php - 通过 cron 发布到 facebook

php - LOAD DATA INFILE 期间时间戳字段未正确更新

php - 查询在 phpmyadmin 中有效,但在页面上无效