Antje Hofmann: Array als input name?

Beitrag lesen

Hallo Ralf,

irgentwie verzwick ich mich da in ein grausames Problem.

Oh ja, dass ist wirklich grausam. Deshalb habe ich mir die Freiheit genommen und deine Funktionen so umgeschrieben, daß eine einzige Funktion alles erledigt.

Ich hoffe, ich habe keine Werte vertauscht:

function spiel(i,wann)
{
eingabe = document.tipform["spieltag"+wann].selectedIndex;   /*auslesen der Liste*/

for (var j=0;j<(document.tipform["spieltag"+wann].length-1);j++) /*Schleife zum Setzen der Felder*/

if (j==eingabe)
document.tipform["st"+(j+1)+"sp"+wann].value=i;
else
document.tipform["st"+(j+1)+"sp"+wann].value="";

/*Setzen der versteckten Felder*/
if (eingabe!=(document.tipform["spieltag"+wann].length-1))
document.tipform["sp"+wann].value= "Sp"+wann+"__"+i;
else
document.tipform["sp"+wann].value= "......";

}

Diese Funktion ist für alle Spiele gültig. Du rufst sie einfach mit:
spiel(1,1)
spiel(1,2) etc. auf.

Kurz zur Funktionsweise:

Du übergibst der Funktion die Parameter i und den Parameter wann (=Spieltag).

Innerhalb der Funktion passiert jetzt folgendes:

Die richtige Liste wird anhand des Spieltages ausgewählt
und deren selktierten Wert in "eingabe" gespeichert. Dann geht alles in eine Schleife. Die vergleicht jetzt den Zähler mit "eingabe". Sind beide gleich, wird das zugehörige Feld mit dem  Wert i belegt, j+1 in der Schleife, da du mit 1 beginnst.
Die Schleife endet automatisch in Abhängigkeit von der Länge der Auswahliste.
Zum Schluß werden noch die versteckten Felder gesetzt und das war es. Jetzt brauchst du dich in Zukunft nur noch um die Formulare kümmern, daß die weiterhin so sorgfältig gemacht werden.

Viele Grüße

Antje