Home > Software design >  Cleaner way of doing a a-z list?
Cleaner way of doing a a-z list?

Time:07-09

I am work on a A-z list for a project. I need to have the class of the list item change depending on the page. What I have now works, I was just wonder if there was a cleaner why of doing it? I am sure there is.

                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'A') { echo ' '; } ?>><a href="test.php?char=A">A</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'B') { echo ' '; } ?>><a href="test.php?char=B">B</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'C') { echo ' '; } ?>><a href="test.php?char=C">C</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'D') { echo ' '; } ?>><a href="test.php?char=D">D</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'E') { echo ' '; } ?>><a href="test.php?char=E">E</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'F') { echo ' '; } ?>><a href="test.php?char=F">F</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'G') { echo ' '; } ?>><a href="test.php?char=G">G</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'H') { echo ' '; } ?>><a href="test.php?char=H">H</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'I') { echo ' '; } ?>><a href="test.php?char=I">I</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'J') { echo ' '; } ?>><a href="test.php?char=J">J</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'K') { echo ' '; } ?>><a href="test.php?char=K">K</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'L') { echo ' '; } ?>><a href="test.php?char=L">L</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'M') { echo ' '; } ?>><a href="test.php?char=M">M</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'N') { echo ' '; } ?>><a href="test.php?char=N">N</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'O') { echo ' '; } ?>><a href="test.php?char=O">O</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'P') { echo ' '; } ?>><a href="test.php?char=P">P</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'Q') { echo ' '; } ?>><a href="test.php?char=Q">Q</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'R') { echo ' '; } ?>><a href="test.php?char=R">R</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'S') { echo ' '; } ?>><a href="test.php?char=S">S</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'T') { echo ' '; } ?>><a href="test.php?char=T">T</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'U') { echo ' '; } ?>><a href="test.php?char=U">U</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'V') { echo ' '; } ?>><a href="test.php?char=V">V</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'W') { echo ' '; } ?>><a href="test.php?char=W">W</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'X') { echo ' '; } ?>><a href="test.php?char=X">X</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'Y') { echo ' '; } ?>><a href="test.php?char=Y">Y</a></li>
                <li <?php if (isset($_GET["char"]) && $_GET["char"] == 'Z') { echo ' '; } ?>><a href="test.php?char=Z">Z</a></li>

CodePudding user response:

Just loop through the uppercase alphabet like this:

<?php
foreach(range('A','Z') as $letter) {
   $classInfo = isset($_GET["char"]) && $_GET["char"] == $letter 
      ? ''
      : '';
   echo "<li $classInfo><a href='test.php?char=$letter'>$letter</a></li>";
}
?>
  • Related