PDA

View Full Version : class conditional on URL parameter


justing138956
07-19-2010, 07:58 AM
I have a hard coded search on a page using a URL parameter as follows:

<a class="current" href="index.php">All</a>
<a href="index.php?S_application=Air%20Flow%20Management">Air Flow Management</a>
<a href="index.php?S_application=Splash%20Shield">Splash Shield</a>
<a href="index.php?S_application=Squeak%20and%20Rattle">Squeak and Rattle</a>
<a href="index.php?S_application=Cushion%20and%20Protection">Cushion and Protection</a>
<a href="index.php?S_application=Aesthetic%20or%20Cover">Aesthetic or Cover</a>
<a href="index.php?S_application=Acoustic%20Insulation">Acoustic Insulation</a>
<a href="index.php?S_application=Gasket%20or%20Seal">Gasket or Seal</a>
<a href="index.php?S_application=Other">Other</a>

As you can see, the default page I have the A tag with a class of "current" that highlights that link. I'd like a simple way to include the class on each A tag automatically or defaults to tagging the "All" A tag when there is no URL param included. So in other words, when a user clicks on "Splash Shield", that link is automatically tagged with the class "current". How would I do this?

Jason Byrnes
07-20-2010, 07:31 AM
you would need to hand code a ternary expression to check the value of the $_GET['S_application'] variable. a ternary expression is a sort of short hand if statement. see this page for a more in depth explanation:
http://www.tech-evangelist.com/2007/11/11/php-ternary-operator/

an example for your purposes would look like:

<a href="index.php?S_application=Air%20Flow%20Management" <?php echo((isset($_GET['S_application']) && $_GET['S_application'] == "Air Flow Management")?"class=\"current\"":"") ?>>Air Flow Management</a>


the default would look like:

<a href="index.php" <?php echo((!isset($_GET['S_application']))?"class=\"current\"":"") ?>>All</a><br />

justing138956
07-20-2010, 07:59 AM
Initial test works like a charm. Thanks! (I've got to learn more PHP).

Jason Byrnes
07-20-2010, 08:10 AM
glad to hear it is working.