zettelbox: Problem mit JavaScript

Guten Abend zusammen,

ich prgrammiere zur Zeit wieder intensiv in PHP, bin aber zur Zeit an einer Stelle angekommen, an der ich ein (eigentlich kleines) JavaScript einfügen möchte. Es geht dabei im einzelnen um ein Formular, in dem man ein Select-Feld findet. Je nach ausgewählter Option dieses Select-Felds soll ein weiteres Selectfeld entsprechende Optionen anzeigen. Praktisch heißt das: Das erste Selectfeld zeigt Oberkategorien, das zweite Select dazu passende Unterkategorien. Hier der Codeausschnitt (steht im <head>-Bereich)

function unterkat () {
  if (document.newauction.maincat.options.value = '1') {
    Unterkategorie = new Option('Unterkategorie 1', 3);
    document.newauction.subcat.options[1] = Unterkategorie;
    Unterkategorie = new Option('Unterkategorie 2', 4);
    document.newauction.subcat.options[2] = Unterkategorie;
  }
  if (document.newauction.maincat.options.value = '2') {
  }
}

maincat ist das select für die Oberkategorie, subcat das select für die entsprechende Unterkategorie. newauction ist übrigens das Formular.

Wenn also in maincat der Value auf 1 steht, sollen in subcat zwei option-Felder erstellt werden (siehe oben). Nun habe ich aber folgendes Problem:
-> dasselbe Feld wird auch erstellt, wenn value von maincat auf 2 steht.
Die Firefox Fehlerkonsole gibt keine Meldung aus.

Wenn mir jemand helfen könnte, wäre ich sehr dankbar.
Lieben Gruß
zettelbox

PS: Nebenbei suche ich auch noch einen Weg, dass subcat nach jedem Verändern von maincat erst gelöscht wird. Da habe ich zwar schon eine Idee, aber Hilfe von jemandem mit JavaScript-Kentnissen wären schon eine hilfreiche Sache :)

  1. Hallo,

    function unterkat () {
      if (document.newauction.maincat.options.value = '1')

    bist du sicher, dass du hier eine Zuweisung ausführen möchtest? Das wäre in diesem Kontext zumindest höchst ungewöhnlich.

    if (document.newauction.maincat.options.value = '2')

    Dito.

    Die Firefox Fehlerkonsole gibt keine Meldung aus.

    Nein, ist ja auch syntaktisch alles korrekt. ;-)

    PS: Nebenbei suche ich auch noch einen Weg, dass subcat nach jedem Verändern von maincat erst gelöscht wird.

    Dazu existiert der delete-Operator.

    So long,
     Martin

    --
    Fettflecke werden wieder wie neu, wenn man sie regelmäßig mit etwas Butter einschmiert.
    1. ... und ich habe mich gewundert, warum in JavaScript der Zuweisungs- und Vergleichsoperator eine identische Syntax haben ... Okay, ich nehme an, der Vergleichsoperator ist '=='? Ich probiere es mal aus, dankeschön :)

      1. Guten Abend nocheinmal,

        ja, das sieht mir auf jeden Fall schon besser aus, allerdings hänge ich jetzt an einer anderen Stelle. Und zwar ist der Rückgabewert von

        document.newauction.maincat.options.value

        'undefined'. newauction ist jedoch das Formular, maincat die select-Liste. Wo ist der Fehler, wie spreche ich die gerade selektierte Option an?

        Danke für eure Mühen und einen schönen Abend noch,
        zettelbox

        1. Hello,

          'undefined'. newauction ist jedoch das Formular, maincat die select-Liste. Wo ist der Fehler, wie spreche ich die gerade selektierte Option an?

          ...das ist doch wirklich alles nicht so schwer herauszufinden, oder? Ich möchte dir ja ein Lob aussprechen, dass du selbst ausprobiert hast was der Vergleichsoperator ist, aber im selben Atemzug machst du es wieder zunichte...
          SELFHTML: .selectedIndex

          MfG
          Rouven

          --
          -------------------
          Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
          1. Hello,

            'undefined'. newauction ist jedoch das Formular, maincat die select-Liste. Wo ist der Fehler, wie spreche ich die gerade selektierte Option an?
            ...das ist doch wirklich alles nicht so schwer herauszufinden, oder? Ich möchte dir ja ein Lob aussprechen, dass du selbst ausprobiert hast was der Vergleichsoperator ist, aber im selben Atemzug machst du es wieder zunichte...
            SELFHTML: .selectedIndex

            MfG
            Rouven

            Naja, vom Grundsatz hilft mir das ja nicht wirklich weiter. Allerdings habe ich das nun auf folgendem kleinen Umweg gelöst:

            function unterkat () {
              var ausgewaehlt = document.newauction.maincat.selectedIndex;
              var moeglichkeit = document.newauction.maincat.options[ausgewaehlt].value;

            if (moeglichkeit == '1') {
                Unterkategorie = new Option('Unterkategorie 1', 3);
                document.newauction.subcat.options[1] = Unterkategorie;
                Unterkategorie = new Option('Unterkategorie 2', 4);
                document.newauction.subcat.options[2] = Unterkategorie;
              }
              if (moeglichkeit == '2') {
                Unterkategorie = new Option('Kategorie 21', 5);
                document.newauction.subcat.options[1] = Unterkategorie;
              }

            }

            Damit funktioniert es tatsächlich wie gewünscht. Ich versuche nun, das automatische Löschen zu implementieren, bin da aber dank delete() erstmal guter Dinge. Vielen vielen Dank für Eure extrem zügige und hilfreiche Hilfe!
            Eine schöne neue Woche wünscht
            zettelbox