Mailinglisten-Archive |
* Reinhold Riedersberger <mailnews at riedersberger.de> [2004-04-17 23:05:04 +0200]: moin, <snip> > Nun möchte ich, daß für den Fall einer Änderung eines Datensatzes über > dieses Formular die Vorgabewerte aus der Datenbank korrekt eingestellt > werden. Insbesondere bei den Auswahlfeldern habe ich hier ein kleines > Problemchen. Zwar ist das kein PHP-Problem, aber dennoch hier eine Lösung: /* hier die moeglichen options definiert */ $option_values = array ( 'mr', 'mrs' ); $option_labels = array ( 'Herr', 'Frau' ); /* du kannst auch values zusammenlegen */ /* das kommt eingentlich aus der DB */ $selected = 'mr'; // $selected = 'mrs'; /* nun erzeugen */ $output = '<SELECT name="foo">'; reset($option_labels); foreach ( $option_values as $o_walk => $o_cur ) { list($_foo,$label) = each ( $option_labels ); $output .= '<OPTION value="'.$o_cur.'" . (($o_cur==$selected) ? ' selected ' : ''). '>'.$label.'</OPTION>'; } oder mit patTemplate vielleicht so: foreach ( $option_values ) { list($_foo,$label) = each ( $option_labels ); $var_value[] = $o_cur; $var_label[] = $label; $var_condition[] = ($o_cur==$selected ? 'selected' : 'default'); } $template->AddVar ( 'foo_opt', 'value', $var_value ); $template->AddVar ( 'foo_opt', 'label', $var_label ); $template->AddVar ( 'foo_opt', 'condition', $var_condition ); $output = $template->getParsedTemplate ( 'foo' ); Wobei das Template so aussieht: <patTemplate:tmpl name="foo"> <SELECT name="foo"> <patTemplate:tmpl name="foo_opt" type="condition" conditionvar="condition"> <patTemplate:sub condition="selected"> <OPTION selected value="{VALUE}">{LABEL}</OPTION> </patTemplate:sub> <patTemplate:sub condition="default"> <OPTION selected value="{VALUE}">{LABEL}</OPTION> </patTemplate:sub> </patTemplate:tmpl> </SELECT> </patTemplate:tmpl> cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT services phone: +49 36207 519931 www: http://www.metux.de/ fax: +49 36207 519932 email: contact at metux.de cellphone: +49 174 7066481 --------------------------------------------------------------------- -- DSL-Zugang ab 0 Euro. -- statische IP -- UUCP -- Hosting -- ---------------------------------------------------------------------
php::bar PHP Wiki - Listenarchive