Jump to content
Sign in to follow this  
harshclimate

Need a conditional statement inside of a link to echo div class

Recommended Posts

Hi folks, brand new here and hope that you can help me;

 

I'm looking for very generic pagination for my page. I'll paste in some html and go from there:

<div class="row paginate">
   <div class="col-12">
      <nav>
         <a href="index.php" class="active">01</a>
         <a href="index-02.php">02</a>
         <a href="index-03.php">03</a>
         <a href="index-04.php">04</a>
         <a href="index-05.php">05</a>
      </nav>
   </div>
</div>

What I'm looking for is php inside of the link to echo the .active class based on whether or not you're on the index-02.php page or index-03.php page etc...

 

I'm not using any mysql for this so I hope it's possible. I also plan on putting that chunk of html in an include file so I don't have to manually keep adding new links to every page :/

 

The site it's going on is one of my own at http://www.harshclimate.com/photos if you wanna see the entire HTML

 

Thanks, all!

Edited by harshclimate

Share this post


Link to post
Share on other sites

An easy way to determine which file the user is looking at would be

basename($_SERVER["REQUEST_FILENAME"])
That'll be "index.php" or "index-02.php" or whatever. Put that value into a variable then test it for each of the links: if it matches then show the class, otherwise don't.

class="active">01

Share this post


Link to post
Share on other sites
<div class="row paginate">
   <div class="col-12">
      <nav>
         <?php
            // loop through 5 page numbers
            for ($i = 1; $i < 6; $i++)
            {
               // output initial links and set the page number in a URI variable
               echo '<a href ="index.php?page=' . $i . '";
               // check URI variable to see if it iss equal to our current iteration count
               if ($_GET['page'] == $i)
                  echo ' class = "active" ';
               // output end of link
               echo '>' . $i . '</a>';
            }
         ?>
      </nav>
   </div>
</div>

Untested but here is how you would build the pages dynamically. Eventually I would have the photo links in a database and I would look into using mod_rewrite with a .htaccess file so you can have the following:

.../photos/2

instead of:

.../index.php?page=2
Edited by DeX

Share this post


Link to post
Share on other sites

Actually that code should be this.

<div class="row paginate">
   <div class="col-12">
      <nav>
         <?php
            // loop through 5 page numbers
            for ($i = 1; $i < 6; $i++)
            {
               // output initial links and set the page number in a URI variable
               echo '<a href ="index.php?page=' . $i . '"';
               // check URI variable to see if it iss equal to our current iteration count
               if ($_GET['page'] == $i)
                  echo ' class = "active" ';
               // output end of link
               echo '>' . $i . '</a>';
            }
         ?>
      </nav>
   </div>
</div>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.