Autor | Zpráva | ||
---|---|---|---|
CATerPILAR Profil |
#1 · Zasláno: 19. 12. 2007, 17:21:15
Ve formuláři mám vícero selectů. Při načtení stránky potřebuji u každého nastavit selected podle načtené hodnoty z db. Jde to udělat nějak jednoduše a elegantně. Selectů je na stránce asi 20.
|
||
habendorf Profil |
#2 · Zasláno: 19. 12. 2007, 17:28:34
Kdysi jsem se ptal na totéž http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=17 80
Jediné co si musíš dořešit je načtení těch hodnot z db a jejich předání skriptu. |
||
CATerPILAR Profil |
#3 · Zasláno: 20. 12. 2007, 11:03:34 · Upravil/a: CATerPILAR
Dobře, já jsem vymyslel trochu jinej způsob, třeba se bude někomu hodit.
Základem je to, aby se všechny optiony vypisovaly pomocí cyklu. Pak už stačí vložit podmínku IF a je to hotový. $form1=... //je hodnota selectu načtená z db; $typ=array(); //neboli všechny optiony se načítají z předem nadefinovaného pole <SELECT NAME="form1"> <?php for($i=0;$i<count($typ);$i++) { if($form1==$typ[$i]) $k="selected"; else $k=""; echo"<option $k value=$typ[$i]>$typ[$i]</option>"; } ?> </SELECT> Nejjednodušší je to u selectů ve kterém jsou dynamické hodnoty jako třeba datum. Odpadá nutnost definovat jakékoli statické pole. <?php $datum=date(Y); for($i=$datum;$i>=$datum-10;$i--) { if($form3==$i) $k="selected"; else $k=""; echo"<option $k value=$i>$i</option>"; } ?> |
||
Kajman_ Profil * |
#4 · Zasláno: 20. 12. 2007, 11:54:29
Nebo se dá udělat univerzální fuknce, které jen to pole předáte.
//funkce pro ryhle pouziti <select><option>*... $values je pole value=>popis function form_select($name,$values,$actual='---null',$addatr='') { $retstr='<select name="'.$name.'"'.$addatr.'>'; foreach($values as $value => $text) { $retstr.='<option value="'.htmlspecialchars($value). '"' .($value==$actual?' selected':'').'>'.htmlspecialchars($text). '</option>'; } $retstr.='</select>'; return $retstr; } |
||
habendorf Profil |
#5 · Zasláno: 20. 12. 2007, 14:17:04
Aha, myslel jsem že jde o JS, z otázky to nebylo jasné.
|
||
Časová prodleva: 16 let
|
0