Autor Zpráva
Lucyk
Profil
Prosím o radu s následujícím výpisem abecedy.

Pro výpis abecedy, používám následující kód:
<?php
foreach (range('A', 'Z') as $character) {
    echo "<a href=\"abeceda.php?character=$character\">$character</a>";
}
?>

A k němu se snažím implementovat class, kdy po kliknutí např. na písmeno A by zůstalo podbarveno.

Zkoušela jsem to zapsat následovně, ale nefunguje to podle představ (v tomto momentě jsou bez ohledu na zvolené písmeno podbarvena všechna)
<?php
foreach (range('A', 'Z') as $character) {
    echo "<a";
    if ($character=="$character") {
        echo " class='active'"; }
    echo "href=\"abeceda.php?character=$character\">$character</a>";
}

A nebo ještě druhá varianta, kterou jsem zkoušela, ale to už mi hlásí chybu Undefined index: character in
<?php
foreach (range('A', 'Z') as $character) {
    echo "<a";
    if ($_GET["character"]) {
        echo " class='active'"; }
    echo "href=\"abeceda.php?character=$character\">$character</a>";
}
?>

Samozřejmě kód pro výpis abecedy mohu udělat i "ručně", ale chtěla jsem použít kód co nejkratší.

Prosím o radu, zda lze nějak do tohoto kódu implementovat výše popsanou vlastnost, anebo se musím spokojit s kódem, kde napíšu natvrdo abecedu A-Z?
Tomášeek
Profil
Lucyk:
Podmínka if ($character == $character) bude splněna vždy, ať v té proměnné bude cokoliv.

Potřebuješ testovat aktuální character vůči GET proměnné.

echo "<a href=\"abeceda.php?character=$character\"" . (isset($_GET['character']) && $_GET['character'] == $character ? ' class="active"' : '') . ">$character</a>";
Lucyk
Profil
Tomášeek:
Děkuji za úpravu, funguje to tak, jak jsem zamýšlela. Jsem ráda, že nemusím použít výpis abecedy natvrdo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0