A
So sollte es funktionieren:
Array für die neue Auswahl
$auswahlen = array('1' => 'Eins', '2' => 'Zwei');
Codeänderung (fett markiert)
$db->query("select * from layout_fields where layout=$layout order by id");
$cnt = 0;
while ($db->next_record()) {
$opt = '';
$opt2 = '';
foreach($types as $type => $desc)
$opt .= sprintf("<option value=\"%s\" %s>%s</option>",$type,($db->f('type') == $type) ? 'SELECTED' : '',$desc);
[b] foreach($auswahlen as $auswahl => $wert)
$opt2 .= sprintf("<option value=\"%s\"%s>%s</option>", $auswahl, ($name_des_auswahlfeldes == $auswahl)?' selected':'', $wert);
[/b]
$tpl->set_var(array('FIELD_VALUE' => htmlspecialchars($db->f('field')),
'FIELD_NAME' => 'field_' . $cnt,
'SELECT_NAME' => 'type_' . $cnt,
'SELECT_VALUE' => $opt,
[b] 'AUSWAHL_NAME' => 'name_des_auswahlfeldes',
'AUSWAHL_VALUE' => $opt2[/b]
));
$tpl->parse("rowsedit", "rowedit", true);
$cnt++;
}
HTML-Templatedatei
<table border=0 cellpadding=3 cellspacing=0>
<!-- BEGIN rowedit -->
<tr>
<td><input type=text size=50 maxsize=50 value="{FIELD_VALUE}" name="{FIELD_NAME}"></td>
<td><select name="{SELECT_NAME}">{SELECT_VALUE}</select></td>
</tr>
<tr>
<td colspan="2">
<select name="{AUSWAHL_NAME}">{AUSWAHL_VALUE}</select>
</td>
</tr>
<!-- END rowedit -->
</table>
Hinweis:
name_des_auswahlfeldes kannst du natürlich ersetzen durch einen anderen Namen, der vielleicht auch besser passt ;). Außerdem solltest du das Array auswahl mit den Werten füllen, die dann auch in deinem Auswahlfeld zur Verfügung stehen sollen.