javascript - 没有搜索结果时从div中隐藏div

标签 javascript php html css mysql

我已经从 stackoverflow 和其他网站尝试了很多方法,但每当我成功隐藏 div 时。根本不显示任何搜索结果。

我已经尝试了 :empty 选择器并摆弄了 php 代码和 js 代码。但由于我对此很陌生,所以我似乎无法破解错误。我做错了什么?

我的 HTML

            <div class='search'>
            <form class="searchbox" action='index.php' method='post' autocomplete='off'>
                <input type='text' name='search' class='searchform' placeholder='Søg efter skole...' onkeyup="searchq();">
            </form>
            <div id="output"></div>
        </div>

PHP

    <?php

include("connection.php");
$output = '';
//collect

if(isset($_POST['searchVal'])) {
    $searchq = $_POST['searchVal'];
    $searchq = preg_replace("#[^a-zA-Z0-9æøå]#i"," ", $searchq);

    $query = mysqli_query($mysqli, "SELECT * FROM `products` WHERE name LIKE '%$searchq%'") or die("could not search");
    $count = mysqli_num_rows($query);

     if($_POST['searchVal'] == NULL) {
        $output = '';
    } else {

        while($row = mysqli_fetch_array($query)) {            
            $name = $row['name'];
            $id = $row['id'];
            $output .= '<a href="kantine.php?id='.$id.'" class="searchres">'.$name.'</a><br>';
        }  
    }
}

echo "<div class='output'>$output</div>";

?>

和JS

                function searchq() {
                var searchTxt = $("input[name='search']").val();
                $.post("search.php", {
                    searchVal: searchTxt
                }, function(output) {
                    $("#output").html(output);
                });
            }

最佳答案

HTML

<div class='search'>
        <form class="searchbox" action='index.php' method='post' autocomplete='off'>
            <input type='text' name='search' class='searchform' placeholder='Søg efter skole...' onkeyup="searchq();">
        </form>
        <div id="output" style="display: none;"></div>
</div>

PHP

.....
echo $output;

JS

function searchq() {
    var searchTxt = $("input[name='search']").val();
    $.post("search.php", {
        searchVal: searchTxt
    }, function(output) {
        $("#output").html(output);
        if(output.length > 0) {
            $("#output").show();
        }
    });
}

关于javascript - 没有搜索结果时从div中隐藏div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635417/

相关文章:

javascript - 如何用多个字符替换字符串中的一个字符

javascript - 正确显示 optgroups 中的数据

javascript - AJAX - 如何在弹出菜单中运行脚本

php - 我想用 am 或 pm 以 30 分钟为间隔显示时间

javascript - 使用 Application Insights NodeJ 进行遥测处理器内的异步操作

javascript - 使用js函数document.appendchild时有没有办法避免浏览器重绘?

javascript - 等待可观察的订阅 Angelar2

php - DOMPDF:表格右对齐

php - 导航栏上的下拉菜单。 -下拉按钮与其余导航按钮不对齐。 HTML

javascript - 基于 HTML/CSS/JS 中先前输入字段的新输入