[JavaScript] Problem mit "alle Checkboxen aktivieren"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Problem mit "alle Checkboxen aktivieren"

    Hey :-)

    Ich hab mir aus dem Netz folgendes wunderbar funktionierendes JS gezogen mit dem ich alle checkboxen aktivieren kann:

    Für den Head:
    Code:
     
    <script type="text/javascript" language="JavaScript">
    <!-- Begin
    var checkflag = "false";
    function check(field) {
    if (checkflag == "false") {
    for (i = 0; i < field.length; i++) {
    field[i].checked = true;}
    checkflag = "true";
    return " keine "; }
    else {
    for (i = 0; i < field.length; i++) {
    field[i].checked = false; }
    checkflag = "false";
    return " alle "; }
    }
    //  End -->
    </script>
    Für den Body:
    Code:
    <form name="myform" action="" method="post">
    
    <input type="checkbox" name="list" value="1">Java
    <input type="checkbox" name="list" value="2">JavaScript
    <input type="checkbox" name="list" value="3">CSS
    <input type="checkbox" name="list" value="4">HTML
    <input type="checkbox" name="list" value="5">DHTML
    
    <input type="button" value=" alle "
    onClick="this.value=check(this.form.list)">
    Leider haben meine Checkboxen, für die ich dieses Script anwenden wollte keineswes denselben Namen (hier wäre das "list").
    Ergo: es geht nicht ...

    Kann mir vielleicht jemand weiterhelfen wie man auch checkboxen unterschiedlicher Namen gleichzeitig aktivieren kann ?!?

    Danke :-)
    Yeah !

  • #2
    So wie du deinen Post formulierst, ist das eher ne Projekthilfe oder ein Scriptgesuch.

    Hast du schon ansätze?

    Sicher hast du bei der Suche auch meinen Thread zu dem Thema gesehen. Der ist zwar für meinen Fall nicht die perfekte Lösung, ...

    Kommentar


    • #3
      Code:
      <script type="text/javascript">
      var shall_check=true;
      function check(field){
       shall_check = (shall_check?false:true);
       for (var i = 0; i < field.length; i++) {
        field[i].checked = shall_check;
       }
      }
      </script>
      <body onload="check(document.myform.list);">
      <form name="myform" action="" method="post">
      <p><input type="checkbox" name="list" value="1">Java
      <input type="checkbox" name="list" value="2">JavaScript
      <input type="checkbox" name="list" value="3">CSS
      <input type="checkbox" name="list" value="4">HTML
      <input type="checkbox" name="list" value="5">DHTML</p>
      <input type="button" value=" alle " onClick="check(document.myform.list);">
      </form>
      </body>
      Übrigens z.B. bei selfhtml wird sogar ein Beispiel verwendet wo mehrere checkboxen markiert werden.

      und bei meiner variante dan einfach check(document.myform.jedername) soviel mal benutzen wie du möchtest

      wenn das nicht reicht, mach es so:
      Code:
      <script type="text/javascript">
      var shall_check=true;
      function check(field){
       shall_check = (shall_check?false:true);
       for(var a = 0;a < field.length;a++){
        for (var b = 0; b < field[a].length; b++) {
         field[a][b].checked = shall_check;
        }
       }
      }
      </script>
      <body onload="check(Array(document.myform.list,document.myform.hallo));">
      <form name="myform" action="" method="post">
      <p><input type="checkbox" name="list" value="1">Java<br>
      <input type="checkbox" name="list" value="2">JavaScript<br>
      <input type="checkbox" name="list" value="3">CSS<br>
      <input type="checkbox" name="list" value="4">HTML<br>
      <input type="checkbox" name="list" value="5">DHTML<br>
      <input type="checkbox" name="hallo" value="6">PHTML<br>
      <input type="checkbox" name="hallo" value="7">PHP</p>
      <input type="button" value=" alle " onClick="check(Array(list,hallo));">
      </form>
      Zuletzt geändert von jmc; 13.08.2006, 22:03.

      Kommentar


      • #4
        Ich habe ein recht ähnliches Problem. Allerdings wird bei mir eine Seite mit Suchergebnissen generiert und das bedeutet je nach Suchtiefe 0 bis weit über 600 Suchergebnisse die wiederum mit Checkboxen markiert werden können. Das mit den Checkboxen habe ich gemacht um verschiedene Möglichkeiten der Weiterverarbeitung anzubieten. Die Seite dient zur Verwaltung meiner Miniaturen Sammlung und ich kann damit dann z.B. Listen für den Verkauf auf Ebay, etc. erzeugen.
        Manchmal wäre es halt sehr komfortabel alle Suchergebnisse zur Weiterverarbeitung zu markieren.
        Hier beispielhaft ein Suchergebnis in dem ich alle Checkboxen auf einmal aktivieren möchte....

        Code:
            <form action="liste.php" name="liste" method="post" target="_blank">
        <input type="hidden" name="ergebnisse" value="14"><table>
        
        <tr><td>Es wurden 14 Suchergebnisse gefunden.<br></td></tr>
        <tr><td>1<input type="checkbox" name="miniatur1" value="595">&nbsp;
        <a href="anzeige.php?miniaturnext=595">Aspect of Bahamut</a>&nbsp;2</td></tr>
        <tr><td>2<input type="checkbox" name="miniatur2" value="597">&nbsp;
        <a href="anzeige.php?miniaturnext=597">Dragonborn Fighter</a>&nbsp;4</td></tr>
        <tr><td>3<input type="checkbox" name="miniatur3" value="598">&nbsp;
        <a href="anzeige.php?miniaturnext=598">Golden Protector</a>&nbsp;5</td></tr>
        <tr><td>4<input type="checkbox" name="miniatur4" value="610">&nbsp;
        <a href="anzeige.php?miniaturnext=610">Small Copper Dragon</a>&nbsp;14</td></tr>
        
        <tr><td>5<input type="checkbox" name="miniatur5" value="611">&nbsp;
        <a href="anzeige.php?miniaturnext=611">Spellscale Sorcerer</a>&nbsp;15</td></tr>
        <tr><td>6<input type="checkbox" name="miniatur6" value="620">&nbsp;
        <a href="anzeige.php?miniaturnext=620">Aspect of Tiamat</a>&nbsp;24</td></tr>
        <tr><td>7<input type="checkbox" name="miniatur7" value="623">&nbsp;
        <a href="anzeige.php?miniaturnext=623">Bluespawn Godslayer</a>&nbsp;26</td></tr>
        <tr><td>8<input type="checkbox" name="miniatur8" value="632">&nbsp;
        <a href="anzeige.php?miniaturnext=632">Greenspawn Razorfiend</a>&nbsp;35</td></tr>
        <tr><td>9<input type="checkbox" name="miniatur9" value="635">&nbsp;
        <a href="anzeige.php?miniaturnext=635">Large Green Dragon</a>&nbsp;38</td></tr>
        
        <tr><td>10<input type="checkbox" name="miniatur10" value="639">&nbsp;
        <a href="anzeige.php?miniaturnext=639">Blackspawn Exterminator</a>&nbsp;42</td></tr>
        <tr><td>11<input type="checkbox" name="miniatur11" value="645">&nbsp;
        <a href="anzeige.php?miniaturnext=645">Large Fang Dragon</a>&nbsp;48</td></tr>
        <tr><td>12<input type="checkbox" name="miniatur12" value="649">&nbsp;
        <a href="anzeige.php?miniaturnext=649">Redspawn Firebelcher</a>&nbsp;52</td></tr>
        <tr><td>13<input type="checkbox" name="miniatur13" value="650">&nbsp;
        <a href="anzeige.php?miniaturnext=650">Small Black Dragon</a>&nbsp;53</td></tr>
        <tr><td>14<input type="checkbox" name="miniatur14" value="656">&nbsp;
        <a href="anzeige.php?miniaturnext=656">Whitespawn Hordeling</a>&nbsp;59</td></tr>
        
        <tr><td>In Sammlung eintragen: <input type="checkbox" name="sammlung" value="YES">&nbsp;
        Spalten:<input type="radio" name="spalten" value="3">3&nbsp;
        <input type="radio" name="spalten" value="4" checked="checked">4&nbsp;
        <input type="radio" name="spalten" value="5">5</td></tr>
        <tr><td><input type="submit" name="liste_erzeugen" value="Liste generieren"
         class="form_submit"></td></tr>
        </table>
            </form>
        Zuletzt geändert von TobiaZ; 22.08.2006, 15:07.

        Kommentar


        • #5
          Code-Umbrüche machst du das nächste mal bitte selbst, wir sind ja hier nicht im Kindergarten.

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            Code-Umbrüche machst du das nächste mal bitte selbst, wir sind ja hier nicht im Kindergarten.
            Oh sorry, da habe ich nicht drüber nachgeschlagen. Jedenfalls hatte ich meinen Beitrag wohl zeitgleich mit dir bearbeitet und jetzt ist meine Ergänzung weg.

            Hier noch mal:

            Die Idee die Checkboxenzahl dynamisch in ein JS-Array zu schreiben und damit "checken" zu lassen hatte ich quasi auch schon. Da ich mir aber sowohl PHP als auch JS selbst beigebracht habe und da nie wirklich in die Tiefe gegangen bin hat das meinen Horizont gesprengt. Ich benötige dann ja die Zahl der Suchergebnisse/Checkboxen schon am Anfang im Dokument und das bekomme ich einfach nicht hin...

            Kommentar


            • #7
              Original geschrieben von DemonLlama
              Manchmal wäre es halt sehr komfortabel alle Suchergebnisse zur Weiterverarbeitung zu markieren.
              Ja, das wär's vermutlich.

              Und weil das auch schon andere vor dir dachten, hat das Thema echt schon einen Bart ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von wahsaga
                Ja, das wär's vermutlich.

                Und weil das auch schon andere vor dir dachten, hat das Thema echt schon einen Bart ...
                Fals du darauf hinaus willst, das ich den ganzen Datensatz nicht auch anders weiterverarbeiten könnte - das ist klar, das kann ich. Da habe ich mich offensichtlich falsch ausgedrückt.

                Nehmen wir an, das du 35 Suchergebnisse hast und 31 davon weiterverwenden willst. Du markierst erst alle, und ziehst dann die 4 davon ab die du nicht haben willst. Das ist einfacher als 31x klicken.

                Kommentar


                • #9
                  Original geschrieben von DemonLlama
                  Fals du darauf hinaus willst
                  Nein, ich will darauf hinaus, dass das Thema "alle Checkboxen mit einem Klick markieren" ein ziemlich altes ist, und du somit m.E. mehr als genug zu diesem im www finden können solltest.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Original geschrieben von wahsaga
                    Nein, ich will darauf hinaus, dass das Thema "alle Checkboxen mit einem Klick markieren" ein ziemlich altes ist, und du somit m.E. mehr als genug zu diesem im www finden können solltest.
                    Ich poste hier, weil das was ich gefunden habe mir nicht weiterhilft. Ich habe die beiden Varianten gefunden die hier im Posting sind. Beide berücksichtigen nur bedingt den Fall, das die Checkboxen unterschiedlich im Namen sind. Wenn du eine feste Anzahl an Checkboxen mit unterschiedlichem Namen hast, ist das etwas anderes als die Variante mit beliebig vielen Variablen Namen und das ist der Punkt an dem ich mit meinem eingeschränkten Wissen über JS und PHP scheitere.
                    Die Suche im englischen lieferte ähnliche Ergebnisse.

                    Kommentar


                    • #11
                      Du suchst also eine Möglichkeit, über alle Checkboxen im Formular eine Schleife laufen zu lassen, egal wie sie heißen.

                      Also beschäftige dich mit http://de.selfhtml.org/javascript/objekte/elements.htm
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Ja, damit komme ich der Sache schon verdächtig nahe. Hatte das ursprünglich mit der Numerierung der Elemente nicht verstanden. Werde damit jetzt noch mal rumexperimentieren und in meiner Schleife die "Nicht-Suchergebnisse" ausschließen müssen.
                        Danke für die Gedächtsnisstütze. Wenn man damit nicht täglich zu schaffen hat ist das immer sehr zäh...

                        Kommentar

                        Lädt...
                        X