alle ckeckboxen

  • Ich habe eine JavaScript Funktion die mit dem Anclicken einer Checkbox alle anderen auch anklicken soll. Wie in vielen Mailsystemen.
    Wenn ich die Checkbox "Alle" anklicke bekomme ich aber den Fehler 'document.forms.form2.produkt' ist Null oder kein Objekt. Was mache ich falsch?

    Danke.


  • 1. Was bedeuten die "\" nach dem onClick??? Die brauch man doch gar net, oder?!
    2. Du hast ja den namen "Produkt" öfter vergeben... Da wird er bei der Zuweisung des "true"-Wertes seine Schwierigkeiten haben...
    3. Müsste das true nicht auch in ' ??? sonst übergibst du doch eine Variable...
    4. Du kannst auf die einzelnen Felder eines Formular auch direkt zugreifen über document.form2.elements[i] wobei i für das durchnummeriere feld steht... (Also 0 für deine erste checkbox, 1 für die zweite, usw.; vorsicht auch alle anderen formularinhalte werden durchnummeriert, also auch textfelder, etc.)

    Dulden hat noch lange nichts mit Toleranz zu tun!

    Toleranz heißt akzeptieren und unterstützen, weniger ist Dulden!

  • Hallo pc,

    versuch doch mal folgendes:
    Javascript-Funktion


    Checkbox "Alle auswählen

    Code
    ><input type="checkbox" name="ALLCHK" value="ALLCHK" onClick="AllMessages(this.form);">


    Und ganz wichtig, geb dem Formular einen Namen

    Code
    <form action="..." method="POST" name="Formularname">

    @Macintosh
    Die \ (Backslash) vor den Anführungszeichen sind sicherlich da, weil es aus dem PHP Quelltext ist. Dort setzt man in Zeichenketten den \ vor Anführungszeichen, damit damit definiert wird, dass die Anführungszeichen teil der Zeichenkette sind und diese nicht abschließen.
    Den gleichen Namen öfters zu vergeben ist richtig so. Damit fasst man die einzelnen Elemente in eine Gruppe zusammen. In PHP beispielsweise werden diese dann in ein array eingelesen.
    true und false sind als Wert der Eigenschaft checked einer Checkbox richtig.
    Zu viertens würde ich abraten. Zum einen kann man Elemente nicht direkt ansprechen, sondern ist immer darauf angewiesen, dass diese in der Reihenfolge bleiben. Das wäre unsauber programmiert.

  • Hm, der zweite Vorschlag funktioniert bei mir nicht. Meine erste Variante habe ich jetzt etwas abgeändert und funktioniert nur wenn ich die restlichen Checkboxen wiefolgt definiere

    Code
    function alle_checkboxen(formname, checkname) {
       var el_collection = eval("document."+formname+"."+checkname);
       var thestate = eval("document."+formname+".alle.checked");
       var length = el_collection.length;
       for (var c = 0; c < length; c++)
          el_collection[c].checked = thestate;
    }
    
    
    <input type='checkbox' name='produkt' value='irgendwas'>


    Nun ist aber das so, daß ich zur weiteren Auswertung mit PHP die Checkboxen in dieser Form brauche:

    Code
    <input type='checkbox' name='produkt[]' value='irgendwas'>

    In der ersten Zeile bekomme ich einen Syntaxfehler. Er kommt also irgendwie nicht mit den eckigen Klammern klar, aber warum?
    In der letzten Zeile wird es vermutlich auch nicht ganz einfach, weil er dann quasi ein zweidimensionales Array ansprechen will. Kann mir jemand helfen?

    Danke.

  • Vielen Dank. Nach einigem hin und her basteln läuft es jetzt endlich :)