Meike: For-Schleife

Hallo !

Danke nochmals für die vielen Antworten auf mein Problem aber nun stehe ich erneut vor einem Problem.

Ich habe ein Formular mit 31 Dropdownboxen die ausgewählten Werte werden in eine Datenbank eingetragen.
Nun möchte ich die Werte korrigieren, d.h. die Dropdownboxen sollen die ausgewählten Werte darstellen aber das klappt irgendwie nicht.

<script language="javascript">
function Korrektur()
{
for (i=0;i<=31;i++);
{
  if (document.test.elements[i].value == "anwesend")
   {
  for (j=0;j<=31;j++);
   document.test.elements[j].options[1].selected = 1;
   }
}
}
</script>

Aber leider funktioniert das nicht, kann mir jemand einen Tip geben ?

danke

Meike

  1. Hi!

    for (j=0;j<=31;j++);

    ^^^

    Die for-Schleife bezieht sich immer nur auf die nachfolgende Anweisung, und die reicht bis zum nächsten Semikolon (natürlich unter Beachtung von geschweiften Klammern). Dein Code wiederholt also eine leere Anweisung. Um das zu erreichen, was Du möchtest, muß das Semikolon weg.

    Gruß
    Steffen

    1. for (j=0;j<=31;j++)
                     ^^

      Wie viele Werte bearbeitet eine Schleife, die mit
      0 beginnt und alle Zahlen kleiner oder gleich 31
      verwendet?

  2. Hi again!

    <script language="javascript">
    function Korrektur()
    {
    for (i=0;i<=31;i++);
    {

    Hier muss das Semikolon weg, wie Steffen es gesagt hat. Ausserdem zaehlst Du von 0 bis 31, setzt also 32 Checkboxen voraus. Aendere  "i<=31"  in  "i<31".

    if (document.test.elements[i].value == "anwesend")

    So wird der Wert der ausgewaehlten Option *nicht* abgefragt. Siehe mein Posting in Deinem anderen Thread: <58941.html>

    {
      for (j=0;j<=31;j++);

    Hier dasselbe. Semikolon weg und j<31.

    document.test.elements[j].options[1].selected = 1;

    Ist richtig, einfacher ist aber vielleicht
        document.test.elements[j].selectedIndex = 1;

    }
    }
    }
    </script>

    Nochmal das Script mit allen Aenderungen:

    function Korrektur() {
            var select_box;

    for (i=0; i<31; i++) {
                select_box = document.test.elements[i];
                if (select_box.options[select_box.selectedIndex].value == "anwesend") {
                    for (j=0; j<31; j++) {
                        document.test.elements[j].selectedIndex = 1;
                    }
                }
            }
        }

    So lange, Calocybe