alle checkboxen auswählen, Array Prob.

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

  • alle checkboxen auswählen, Array Prob.

    Hmm,

    Kennt sicher alle diese Buttons, wo draufsteht "alle markieren". Beim Klick werden dann alle markiert.

    Hab mir auch sowas gebastelt:
    PHP-Code:
    <input type="checkbox" name="category_id" value="2" />
    <
    input type="checkbox" name="category_id" value="3" />
    <
    input type="checkbox" name="category_id" value="4" />
    <
    input type="checkbox" name="category_id" value="5" />

    <
    input type="button" value="markieren" 
      
    onclick="mark(this.form.category_id)">


    <
    script language="javascript"><!-- Begin
    var false;
    function 
    mark(field)
    {
        if(!
    f)
        {
            for(
    i=0;i<field.length;i++)
                
    field[i].checked true;
            
    true;
        }
        else 
        {    
            for(
    i=0;i<field.length;i++)
                
    field[i].checked false;
            
    false;
        }
    }
    //  End --></script> 
    so funktioniert das JS wunderbar. allerdings habe ich dann in PHP das Problem, dass der Browser mir nur eine category_id sendet. Und kein Array. Kein Problem, denkt man, macht man im Formular einfach name="category_id[]". Da freut sich PHP, aber das markieren mittels Button klappt natürlich(?) nicht mehr.

    Jemand ne Lösung?
    Zuletzt geändert von TobiaZ; 04.01.2005, 17:06.

  • #2
    Re: alle checkboxen auswählen, Array Prob.

    und als erfahrnerer moderator, der ja oft genug die newbees in dieser hinsicht ermahnt hat, hast du uns natürlich auch gleich mitgeteilt, was du für den parameter field beim aufruf der funktion mitgibst ... vorbildlich :-)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      *hüstel*

      Rufe die Funktion mittels mark(this.form.category_id) auf-

      Kommentar


      • #4
        Probier mal
        PHP-Code:
        onclick="mark(this.form.elements('category_id[]'))" 
        Scheint bei mir zu klappen...

        Kommentar


        • #5
          da macht aber nur der IE mit. Leider etwas suboptimal...

          Kommentar


          • #6
            Sowas hab ich au schon gemacht, nur halt mit Messages.
            Ganz einfach:

            Code:
            function checkmessages(range){
            	if(checkm == 0){
            		checkm = 1;
            		elem = document.forms['form'].elements['messageid[]'];
            		for(i = 0; i <= range; i++){
            			elem[i].checked = true;
            		}
            	}else{
            		checkm = 0;
            		elem = document.forms['form'].elements['messageid[]'];
            		for(i = 0; i <= range; i++){
            			elem[i].checked = false;
            		}
            	}
            }
            Code:
            <input type="checkbox" value="0" name="messageid[]" onclick="checkmessages(20);" />
            ...

            Kommentar


            • #7
              Hmm ich bin einfach durch das elements Array durchgegangen habe nach typ checkbox und einem name prefix abfrenzt und dabei alle aktiviert.....

              prefix wurde verwendet um nur gewollte checkboxen zu aktivieren

              Bsp:
              Code:
              <input type="checkbox"  name="delete[45]">
              Das in der Klammer stehende war dabei eine ID was mich aber nicht gestört hat und auch nicht wissen musste.......

              Mir hat es gereicht nach typ checkbox und nach name delete zu prüfen......

              Damit wurde [45] abgeschnitten......

              Und durch das elements Array wusste ich dann auch das genau Feld.......

              Vielleicht gibts noch ne bessere Idee
              [color=blue]MfG Payne_of_Death[/color]

              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
              [color=red]Merke:[/color]
              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

              Murphy`s Importanst LAWS
              Jede Lösung bringt nur neue Probleme
              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

              Kommentar


              • #8
                in der richtung arbeite ich gerade auch.

                mich stört ein wenig, dass ich die anzahl der Boxen (bei dir "range") angeben muss. ich versuche noch irgendwie trotzdem an die "length" zu kommen.

                Wäre doof, wenn ich im Template extra noch ne anzahl angeben müsste.

                ich denke (werde testen), dass

                elem[i].checked = false;

                einen fehler verursacht, wenn elem[i] nicht vorhanden ist. ansonsten wäre ne while-schleife evtl möglich?

                Kommentar


                • #9
                  gibt es inzwischen eine lösung?

                  Kommentar


                  • #10
                    Also ich habe mein Script damals auf diesem Stand gelassen... Zwar nicht ganz so schön vom prinzip her, dafür ist der code am saubersten.

                    Kommentar


                    • #11
                      Die Lösung von hibatsu sieht soweit ganz gut aus, nur setzt diese voraus, dass es nur checkboxen gibt, was bei mir nicht der fall ist, da ich manchmal (!) noch eine Auswahlliste mittendrin habe =/

                      Kommentar


                      • #12
                        Original geschrieben von Realmaker
                        Die Lösung von hibatsu sieht soweit ganz gut aus, nur setzt diese voraus, dass es nur checkboxen gibt, was bei mir nicht der fall ist, da ich manchmal (!) noch eine Auswahlliste mittendrin habe =/
                        Dann beachte auch die anderen Antworten - Payne_of_Death hat doch schon gesagt, was man dann machen kann.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Code:
                          function auswahl()
                          {
                          	checkboxes = document.getElementsByTagName('input');
                          	
                          	  for (var i=0; i<checkboxes.length; i++)
                          	  {
                          		checkbox = checkboxes[i];
                          		if (checkbox.type != 'checkbox') continue;
                          		checkbox.checked = true; 
                          	  }  
                          }

                          Kommentar


                          • #14
                            Funktion die klappt

                            Dieser Code ist etwas flexibler und kurz.
                            Bald mach ich daraus eine einzige Funktion.

                            Stay tuned!

                            PHP-Code:
                            function markAll(fieldname) {
                                for (
                            0document.resendForm.elements(fieldname).lengthi++) {
                                    
                            document.resendForm.elements(fieldname)[i].checked true;
                                }
                            }

                            function 
                            unmarkAll(fieldname) {
                                for (
                            0document.resendForm.elements(fieldname).lengthi++) {
                                    
                            document.resendForm.elements(fieldname)[i].checked false;
                                }

                            Kommentar


                            • #15
                              Re: Funktion die klappt

                              Original geschrieben von Someday
                              Dieser Code ist etwas flexibler und kurz.
                              Bald mach ich daraus eine einzige Funktion.

                              Stay tuned!

                              PHP-Code:
                              function markAll(fieldname) {
                                  for (
                              0document.resendForm.elements(fieldname).lengthi++) {
                                      
                              document.resendForm.elements(fieldname)[i].checked true;
                                  }
                              }

                              function 
                              unmarkAll(fieldname) {
                                  for (
                              0document.resendForm.elements(fieldname).lengthi++) {
                                      
                              document.resendForm.elements(fieldname)[i].checked false;
                                  }

                              Und wie weit bist du?
                              Ich hätte gerne das fertige Script, komme auch nicht weiter. Hab das gleiche Prob wie TobiaZ.

                              Kommentar

                              Lädt...
                              X