21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Milan1236000
Profil
Zdravím,
mám následující kód, tady i s url.
Problém je, že když zvolím Sestupně, položka v selectu zůstane na Vzestupně, ale v url se sestupne objeví. Další problém je, že v selectu nejde vybrat možnost Vzestupně, takže to musím přepisovat v url.
Jak to sesynchronizovat, aby se v selectu objevovalo, to co v url?
Dan Charousek
Profil
Toto bys měl řešit spíš v PHP. Kontrolovat, zda existuje v poli $_GET klíč, který odpovídá value některému z optionů. Tím se odstraní i druhý problém, protože při přesměrování je vždy výchozí "Vzestupně", tudíž se na něj nikdy nedostaneš tak, abys spustil událost onChange.

<?php
$options = ["vzestupne" => "Vzestupně", "sestupne" => "Sestupně"];
$selected = isset($_GET['razeni']) ? $_GET['razeni'] : "vzestupne";

echo '<select onChange="location.href=\'?razeni=\'+this.value">';
foreach($options as $key => $value) {
    echo '<option value="' . $key . '"' . ($selected == $key ? " selected" : "") . '>' . $value . '</option>';
}
echo '</select>';
?>

Lze to udělat i v JavaScriptu, ale nepřijde mi to jako vhodné řešení. Pokud bys měl i přesto zájem, tak zde se můžeš inspirovat, jak vytvoři funkci, pomocí které získáš klíče a hodnoty z adresy a obdobným způsobem bys mohl přidat atribut selected zvolenému optionu.
Milan1236000
Profil
Dan Charousek:
To je taky dobré, díky.
Dan Charousek
Profil
Možná by se mohlo přesunout do PHP.
Moderátor Chamurappi: Dobrý nápad, přesunuto z kategorie JavaScript.

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