首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >autosuggest显示空白li

autosuggest显示空白li
EN

Stack Overflow用户
提问于 2012-08-01 23:17:11
回答 3查看 124关注 0票数 4

我正在使用Paper Mashups Autosuggest.

我刚刚完成了一个mysql联合,将三个表合并到一个表中,这样我就可以自动提示公司名称、类别名称和子类别名称。不幸的是,虽然这是可行的,但它添加了额外的li(我认为这就是它们,这是picture.)

我怎么才能去掉那些多余的li?

下面是我的代码:

代码语言:javascript
复制
<?php
$db = new mysqli('localhost', 'root' ,'*********', '****************');

if(!$db) {

    echo 'Could not connect to the database.';
} else {

    if(isset($_POST['queryString'])) {
        $queryString = $db->real_escape_string($_POST['queryString']);

        if(strlen($queryString) >0) {
            $query = $db->query("SELECT name FROM company WHERE name LIKE '$queryString%' UNION SELECT cat FROM cat WHERE cat LIKE '$queryString%' UNION SELECT subcat FROM subcat WHERE subcat LIKE '$queryString%' LIMIT 10");
            if($query) {
            echo '<ul>';
                while ($result = $query ->fetch_object()) {
                    echo '<li onClick="fill(\''.addslashes($result->name).'\');">'.$result->name.'</li>';
                    echo '<li onClick="fill(\''.addslashes($result->cat).'\');">'.$result->cat.'</li>';
                    echo '<li onClick="fill(\''.addslashes($result->subcat).'\');">'.$result->cat.'</li>';
                }
            echo '</ul>';

            } else {
                echo 'OOPS we had a problem :(';
            }
        } else {
            // do nothing
        }
    } else {
        echo 'There should be no direct access to this script!';
    }
}
?>

感谢大家的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 23:24:17

在我看来,它就像是吐出了空格。尝试先使用name,然后使用cat,然后使用subcat来查找罪魁祸首。另外,在你的三个回声中,你的subcat是在回应cat而不是subcat…

代码语言:javascript
复制
echo '<li onClick="fill(\''.addslashes($result->subcat).'\');">'.$result->cat.'</li>';

应该是:

代码语言:javascript
复制
echo '<li onClick="fill(\''.addslashes($result->subcat).'\');">'.$result->subcat.'</li>';
票数 0
EN

Stack Overflow用户

发布于 2012-08-01 23:23:17

你可以简单地检查一下:

代码语言:javascript
复制
while ($result = $query ->fetch_object()) {
                if($result->name && $result->cat && $result->subcat){
                  echo '<li onClick="fill(\''.addslashes($result->name).'\');">'.$result->name.'</li>';
                  echo '<li onClick="fill(\''.addslashes($result->cat).'\');">'.$result->cat.'</li>';
                  echo '<li onClick="fill(\''.addslashes($result->subcat).'\');">'.$result->cat.'</li>';
                 }
}
票数 0
EN

Stack Overflow用户

发布于 2012-08-01 23:32:54

将您的查询修改为如下所示,这将使其更易于理解和操作:

代码语言:javascript
复制
SELECT name as SuggestText FROM company WHERE name LIKE '$queryString%' 
UNION 
SELECT cat as SuggestText FROM cat WHERE cat LIKE '$queryString%' 
UNION 
SELECT subcat as SuggestText FROM subcat WHERE subcat LIKE '$queryString%' LIMIT 10

然后修改您的循环,使其如下所示:

代码语言:javascript
复制
while ($result = $query ->fetch_object()) {
     echo '<li onClick="fill(\''.addslashes($result->SuggestText).'\');">'.$result->SuggestText.'</li>';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11762324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档