Hallo,
nur kurz, da ich grad aufm Sprung bin.
Nur nebenbei: ich benutze Smarty, das macht solche Sachen wie das Vorbelegen in Formularen bspw. einfacher. Die Smarty-Variablen sind hier alle in geschwungenen Klammern und großgeschrieben (der Übersichtlichkeit halber habe ich auf Smartys html_options verzichtet).
Möglicherweise hilft Dir dieser Ansatz etwas :
html:
<form action="#" method="post">
<div class="element">
<select name="payment" onchange="xajax_showtype(this.value);">
<option value="0" {if !$PAYMENT}selected="selected"{/if}>Bitte wählen...</option>
<option value="1" {if $PAYMENT == 1}selected="selected"{/if}>Einzugsermächtigung</option>
<option value="2" {if $PAYMENT == 2}selected="selected"{/if}>Barzahlung</option>
</select>
</div>
<div class="element" id="extra" {if $PAYMENT != 1}style="display:none;"{/if}>
<input type="text" name="username" value="{$USERNAME}" />
</div>
[usw...]
</form>
xajax:
function showtype($iValue) {
$oResponse = new xajaxMyResponse();
$sExtra = ($iValue == 1) ? '' : 'none';
$oResponse->assign('extra','style.display',$sExtra);
return $oResponse;
}
Sieht doch ganz einfach aus, nicht ;)
Bei einem hidden Div mußt Du allerdings davon ausgehen, dass die input-Felder mit übermittelt werden - was ja hier für den Fall eigentlich egal sein dürfte, Du hast ja den Wert aus 'payment', nach dem Du auswertest oder eben nicht...
Gruß,
Manu