Hi,
Ihr habt mich überzeugt.
Dafuer sind wir ja hier :-)
<script type="text/javascript">
function einblenden(select, id) {
if(select==3){
if(document.getElementById(id).style.display == "none") {
document.getElementById(id).style.display = "inline"
} else {
document.getElementById(id).style.display = "none"
}
}
}</script>
>
> Select ist bei der Funktion das Value also bei Einzusermächtigung die ID 3.
>
> Leider habe ich 2 Probleme ich schaffe es nicht beide Werte an die Funktion zu übergeben.
>
> Ich dachte es geht so:
>
> ~~~php
> echo "<select name='zahlungsart' onchange=\"einblenden(this.options[this.selectedIndex].value, 'bankdaten') return false\" >";
>
Und was geht daran nicht?
Welche Fehlermeldung bekommst du, oder welcher Wert wird statt dem erwarteten uebergeben?
Das 2 Problem wieder ausgehend vom Fehlerfall.
Da soll der Ausgeblendete Teil eingeblendet sein wenn der User diese zahlungsart zuvor gewählt hat. Nicht eingeblendet wenn er dies nicht zuvor gewählt hat.Das könnte man doch einfach auch mit JS machen,
Koennte man "auch", aber ist das denn wirklich der "einfachere" Weg?
Du generierst im Fehlerfalle doch sowieso ein "neues" Formular serverseitig.
Also frage doch im PHP-Script ab, welche Zahlungsart ausgewaehlt wurde - und je nachdem, generierst du dann ein style="display:none" in den Container, der die entsprechenden Formularfelder enthaelt [1] hinein, oder nicht. (Das waere der Quick&Dirty-Weg - es ueber eine Klasse zu machen, waere "schoener".)
[1] Bspw. sowas wie ein Fieldset um die Bankdaten-Formularfelder herum sollte ja ggf. vorhanden sein.
also wenn das Formular aufgerufen wird, und Zahlungsart == 3 ist dann seige an else dann halt nicht.
Da stellt ich mir nur die Frage wie komme ich an die Variable zahlungsart?
An den Wert kaemst du (so du es denn mit Javascript loesen wolltest) genauso wie vorher - du fragst ab, was im Selectfeld aktuell ausgewaehlt ist (und du hast es ja mit dem vorbelegt, was der Nutzer vor dem Abschicken des Formulars ausgewaehlt hatte).
Die Javascript-Funktion, die darauf reagiert, kann die gleiche sein, die auf onchange auf dem Selectfeld reagiert - nur dass du hier nicht auf onchange wartest, sondern sie bspw. per onload anstoesst.
MfG ChrisB