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