phpbar.de logo

Mailinglisten-Archive

[php] Listfeld Vorbelegung mit der aktuellen Einstellung aus dem Datensatz

[php] Listfeld Vorbelegung mit der aktuellen Einstellung aus dem Datensatz

Enrico Weigelt weigelt at metux.de
Mon Apr 19 03:00:58 CEST 2004


* 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