aetzchen: Einiges ...

Beitrag lesen

Hallo,

also ich hab ein drop down mit 3 feldern.

-3.Tagesticket
-2.Tagesticket
-1.Tagesticket

dazu habe ich  3 checkboxen.

[] 1Tag
[] 2Tag
[] 3Tag

ich will das bei z.b  bei 3 Tageticket alle boxen disabled und checked sind.
das bei 2 tagesticket nur 2 anwählbar sind und die 3 disabled wird
bei 1 tagesticket nur 1 etc.
das will ich ohne reload sonst hätte ich das in php machen können. deswegen beschäftige ich mich gerade mit js obwohl es überhaupt nicht mein thema ist.

Ich habe eine funktionierende Lösung welche aber das js in eine php for schleife hängt. Das heißt bei z.b. 4 Personen die ein Ticket bestellen. Würde das js 4mal in den quelltext geschrieben. Was für mich eine unmögliche Lösung ist da ich ja an funktionen argumente übergeben kann.

Zum bsp. der begin meiner alten lösung.

<? for ($i=1; $i <= $_SESSION['personenanzahl']; $i++){?>
<SCRIPT>
function checkmax<?=$i?>(){
 if (document.order.kticket<?=$i?>.options[1].selected == true){
         if( document.getElementById("box<?=$i?>0").checked == true && document.getElementById("box<?=$i?>1").checked == true)  {document.getElementById("box<?=$i?>2").disabled = true;}
         else  {document.getElementById("box<?=$i?>2").disabled = false;}

das würde 4 mal js bedeuten. Nun versuche ich das js anzupassen das es nur noch einmal geschrieben wird. Das sieht mom wie folgt aus.

function checkmax(bname, sname){
 if (document.forms['order'].elements[sname].options[1].selected == true){
         if( document.getElementById(bname + "0").checked == true && document.getElementById(bname + "1").checked == true)  {document.getElementById(bname + "2").disabled = true;}

bei folgenden funktionsaufruf

<select name="kticket'.$i.'" onChange="deselect('.$checkt.','.$formt.')">

das problem ist, es funktioniert gar nichts mehr. Selbst wenn ich als erstes in die funktion ein

alert("hau mich blau haue") haue. Kommt nicht raus. Ich bin aufgrund meiner js kenntnisse leider nicht in der Lage meinen Fehler zu finden. Ich gehe mal davon aus das ich die argumente nicht richtig übergebe.

Danke