Autor Zpráva
Akali
Profil
Ahoj, tak jsem tu s dalším dotazem. Dejmte tomu, že mám takovýto formulář

<form action="./" method=GET>
    Seřadil podle 
        <select name="select">
              <option value="ID">id</option>
              <option value="cena">ceny 0->9</option>
              <option value="cena">ceny 9->0</option>
        </select>   
</form>

Když vyberu seřazení podle ceny 0->9 a dám odeslat, tak se na stránce zobrazí vypsané zboží tak jak má, ale ve formuláři se zobrazí vypsaná první hodnota (což je ID). Čili bych potřeboval, aby se ve formuláři zobrazovala ta hodnota, která je právě aktuální.. Doufám, že jsem to dost dobře vysvětlil. Pokud budete potřebovat i script, tak ho rád přidám, ale myslím, že nyní potřeba není

-> zařadil jsem to do PHP, protože jsem se domníval, že se to musí přes tento jazyk ošetřit.
Děkuji!
GeneralDv
Profil
Projeď možnosti v selectu, u každý porovnej value jestli se rovná tomu cos odeslal a když jo tak ho vyber.

Moje funkce:
function selectbox($items, $attrs=null, $default=null)
{
    $return = '';
	$return.="<select";
	
	if ($attrs!==null && is_array($attrs)) {
	    foreach ($attrs as $key=>$val) {
		    $return.=" $key=\"".str_replace('"','\"',$val)."\"";
		}
	}
	
	$return.=">\n";
	
    foreach ($items as $key=>$val) {
	    $sel = (($default!==null && (string)$default==(string)$key) ? ' selected' : '');
	    $return.="    <option value=\"$key\"$sel>$val</option>\n";
	}
	
	$return.="</select>";
	return $return;
}


A použiješ uplně jednoduše:

echo selectbox (
    array ("ID" => "id", "cena" => "ceny 0->9", "cena" => "ceny 9->0"), //pole možností
    array('name' => 'select'), //atributy
    @$_GET['select'] //výchozí hodnota
 );
Akali
Profil
Jejda.. Moc ten Váš příklad nechápu.. Ale vyřešil jsem to jinak

    Seřadil podle <select name="select"> 
      <option value="ID" <?php if ($_GET['select'] == ID){echo "selected";} ?>>id</option>
      <option value="cena" <?php if ($_GET['select'] == cena){echo "selected";}?>>ceny</option>
    </select>


Ale asi to nebude úplně správně :(
Alphard
Profil
[#3] Nápad dobrý, ale chtělo by trochu doladit správnou syntaxi (uvozovky kolem řetězců).
Funkce v [#2] zpřehledňuje zápis, stačí ji předat pole hodnot a ona vygenruje html.
V [#1] máte 2 stejné value, to nebude fungovat správně.
Akali
Profil
V tom prvním [#1] o tom vím, psal jsem jenom příklad

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