[thelist] best way to do dynamic tabs in PHP

Mike Migurski mike at saturn5.com
Tue Jan 21 21:18:00 CST 2003


>I have a site with your typical tabbed navigation, with rollovers. Each
>tab is an image with a link of course, just like this:
>
<snip>
>
>And I would do this for each of the six images. This seems like lots of
>code, and I'm thinking there is a better way to do this, but I'm not sure
>what it is. I do NOT want to do something like numbering my images
>instead of naming them and using an array, but I'm sure thats not the
>only way.

You can use arrays without having to number your images. Try PHP's foreach
construct, like so:

[clip 'n save]------8<-------------------------------

$all_pages = array('eenie', 'meenie', 'miney', 'moe');
$current_page = 'miney';

foreach($all_pages as $a_page) {

	printf('<a href="%s.php"><img src="%s_%s.jpg"></a>',
		$a_page,
		$a_page,
		(($a_page === $current_page) ? 'on' : 'off')));

}

--------->8-------------------------------------------

That's drastically simplified, but it's the most compact-yet-legible way I
know of to get what you are trying to achieve. I used printf() because in
situations like this one, it can help make echo statements with lots of
inserted variables a little easier on the eyes.

http://www.php.net/manual/en/control-structures.foreach.php

http://www.php.net/manual/en/function.printf.php

see first comment for example of ternary operator, which doesn't seem to
be properly documented in PHP:
http://www.php.net/manual/en/control-structures.else.php

---------------------------------------------------------------------
michal migurski- contact info and pgp key:
                 http://www.saturn5.com/mike/contact.html

                "Freedom! Horrible, horrible freedom!"






More information about the thelist mailing list