Shaydx
Shaydx

Reputation: 107

hide div from div when there is no search result

I've tried so many methods from stackoverflow and other websites but whenever i succeed in hiding the div. No search result is displayed at all.

I've tried the :empty selector and fiddling around with the php code and js code. but since i'm very new to this i just can't seem to crack the error. What am i doing wrong?

My 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>";

?>

And JS

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

Upvotes: 0

Views: 211

Answers (1)

Adam J
Adam J

Reputation: 508

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();
        }
    });
}

Upvotes: 1

Related Questions