JavaScript: select-box onchange: neue select-box

  • Hab ein JavaScript-Problem und bin da noch ziemlicher Newb, vielleicht ist es nur ein kleiner Fehler den ein versierter JavaScripter direkt sieht.

    Ich habe eine Select-Box zur Auswahl von Kategorien, bei einer Auswahl soll daneben eine zweite Select-Box mit den zugehörigen Unterkategorien erscheinen (und zu dieser bei Auswahl gegebenenfalls nochmals eine). Das klappt leider nicht, beim Auswählen einer Kategorie passiert gar nichts :(

    Dafür lese ich zunächst alle Kategorien aus der Datenbank aus und füttere sie in einen mehrdimensionalen JavaScript-Array (dieser wird auch korrekt gefüllt):

    Die JavaScript-Funktion die das ganze bewerkstelligen soll:

    Und der zugehörige HTML-Bereich:

    Sieht vllt. jemand einen Fehler in dem Konstrukt, bzw. ist das in dieser form überhaupt vernünftig umgesetzt (der javascript-teil)?

  • hast du in der Firfox-Fehler-Konsole nachgesehen, ob du eine meldung bekommst?
    (Extras -> Fehler-Konsole)

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • drei meldungen die mir irgendwie nicht einleuchten wollen:

    Zitat


    ersteAuswahl is not defined

    Ich bin, wie schon gesagt, kein großer javascript checker, aber was muß ich denn da noch mehr definieren? -.-;;

    Zitat


    missing ; before statement

    var arrParts = new array();var arrParts[1] = new array();var arrParts[1][1] = new array();

    --------------------------------------^

    Auch hier kann ich nicht erkennen wo da ein ; fehlen soll :(

    Zitat


    uncaught exception: Die Erlaubnis für den Aufruf der Methode Location.toString wurde verweigert // edit: dieser fehler hat sich erledigt, lag an einer kleinen änderung im code zu testzwecken

    Location.toString gibt es überhaupt nicht im quellcode -.-

    Einmal editiert, zuletzt von Jan_K (20. August 2008 um 10:29)

  • Ahhhhh
    ich hasse javascript... :D

    et funzt nu.

    Und zwar gab es zwei kleine probleme:

    1.
    var arrParts = new array();
    var arrParts[1] = new array();
    var arrParts[1][1] = new array();
    ...

    das "var" durfte nur vor dem reinen arrParts stehen, bei den tieferen Dimensionen ist das unerwünscht, also so:

    var arrParts = new array();
    arrParts[1] = new array();
    arrParts[1][1] = new array();
    ...


    Da spuckte er mir dann schonmal nur noch die Fehlermeldung: "array is not defined"

    womit ich dann zum zweiten Fehler kam:

    2.
    Nicht-Beachtung von case-sensitivity meinerseits.
    mit "new Array()" war auch dieser Fehler behoben.

    Und siehe da, nun ist auch "ersteAuswahl" nicht mehr undefined und es läuft alles wie es soll.
    Auswahl in der select-box öffnet die zweite select-box mit den zugehörigen unterkategorien.

    Jetzt wird nur noch arrParts nicht ganz korrekt belegt, das sollte aber kein großes Problem mehr sein :)

  • jop das is das problem an JS^^ (also meines)
    man bekommt keine offenen fehlermeldungen wenn was nicht passt, sondern sieht nur, dass nix passiert.

    Darum -> Fehlerkonsole

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • hehe, yo richtig

    die meldungen von der fehlerkonsole fand ich aber auch recht unkonkret. "missing ; before statement" <-- da seh ich keinen direkten zusammenhang zur doppelten var-deklaration von arrParts. (mag aber auch einfach an mangelnder routine im umgang mit js liegen)

    Da gefällt mir php wesentlich besser, mit den fehlermeldungen kann ich i.d.r. mehr anfangen.