Maria Nolorbe
Maria Nolorbe

Reputation: 357

Hide DIV based on contents being empty

I have a slide jquery plugin called swiper slide. I use the slide to display results from a PHP mysql query 9 results at a time.

Currently my query code and slide code looks like this...

PHP QUERY

$query = mysql_query("SELECT * FROM tblClients  
                      WHERE tblclients.package =  
                      'standard' LIMIT 0, 9", $connection); 

$query_page_2 = mysql_query("SELECT * FROM tblClients  
                             WHERE tblclients.package =  
                             'standard' LIMIT 9, 9", $connection);      

$query_page_3 = mysql_query("SELECT * FROM tblClients  
                         WHERE tblclients.package =  
                         'standard' LIMIT 18, 9", $connection); 

SLIDE CODE

       <div class="swiper-slide">


<?php while ($rows = mysql_fetch_array($query)) { ?>
<div id="main">
<div id="phone"><?php echo $rows['phone']; ?></div>
<img id="client_img" src="<?php echo $rows['client_img']; ?>">
</div>
<?php } ?>     
        </div>




        <div class="swiper-slide">

<?php while ($rows = mysql_fetch_array($query_page_2)) { ?>
<div id="main">
<div id="phone"><?php echo $rows['phone']; ?></div>
<img id="client_img" src="<?php echo $rows['client_img']; ?>">
</div>
<?php } ?>          
        </div>




        <div class="swiper-slide">

<?php while ($rows = mysql_fetch_array($query_page_3)) { ?>
<div id="main">
<div id="phone"><?php echo $rows['phone']; ?></div>
<img id="client_img" src="<?php echo $rows['client_img']; ?>">
</div>
<?php } ?>  

        </div>

My question is, either using jquery or PHP, how can I hide the slide that are empty or have no results inside. So if I only have 8 results returned, the 1st slide should be the only one showing.

Upvotes: 4

Views: 157

Answers (4)

J.Tural
J.Tural

Reputation: 925

you should check if the Query have 0 data dont enter the loop by some thing like this surround all the block if(mysql_num_rows($query_page_2) > 0) { and your code will be

    <?php if(mysql_num_rows($query_page_2) > 0) { ?>
    <div class="swiper-slide">
        <?php while ($rows = mysql_fetch_array($query_page_2)) { ?>
        <div id="main">
        <div id="phone"><?php echo $rows['phone']; ?></div>
        <img id="client_img" src="<?php echo $rows['client_img']; ?>">
        </div>
        <?php } ?>          
    </div>
    <?php } ?> 

Upvotes: 1

prajakta
prajakta

Reputation: 162

Simply using this css property you will get proper result

.swiper-slide img[src=""] {
    display: none;
}

Upvotes: 1

Anubhav pun
Anubhav pun

Reputation: 1323

you can use it through by may it help you

$(".swiper-slide:empty:empty").css("display", "none");

Upvotes: 2

Satpal
Satpal

Reputation: 133403

You can use :empty selector

Select all elements that have no children (including text nodes).

$(function(){
     $('.swiper-slide:empty').hide()
});

OR, You can achieve it using simple CSS :empty pseudo-class

.swiper-slide:empty { display: none;}    

Upvotes: 6

Related Questions