Michael S.: alle Checkboxen im Formular setzen

Ich habe folgendes Problem:
ich habe ein php-script, welches mir automatisch ein suchformular für jede tabelle einer datenbank generiert. nun soll da aber neben jede spalte eine checkbox hin, welche dem benutzer ermöglicht sich spalten zu wählen, welche bei der suche relevant sind. dafür möchte ich pro formular noch eine checkbox setzen, mit der man gleichzeitig alle anderen checkboxen im formular an- bzw. aus stellt.

dies ist unter anderem problematisch, weil die namen der checkboxen sich unterscheiden (nach dem motto name="$feldbezeichnung" . "_apply")

Ich hoffe jemand kann mir mit einem Link o.ä. weiterhelfen.

mfg
Micha

  1. Hi,

    dafür möchte ich pro formular noch eine checkbox setzen, mit der man gleichzeitig alle anderen checkboxen im formular an- bzw. aus stellt.

    Du suchst im falschen Themenbereich. Mit HTML geht das nicht. Du kannst serverseitig alle Optionen berücksichtigen, wenn diese Checkbox aktiviert wurde und clientseitig über Javascript die einzelnen Checkboxen selektieren.

    freundliche Grüße
    Ingo

    1. Hi,

      dafür möchte ich pro formular noch eine checkbox setzen, mit der man gleichzeitig alle anderen checkboxen im formular an- bzw. aus stellt.
      Du suchst im falschen Themenbereich. Mit HTML geht das nicht. Du kannst serverseitig alle Optionen berücksichtigen, wenn diese Checkbox aktiviert wurde und clientseitig über Javascript die einzelnen Checkboxen selektieren.

      freundliche Grüße
      Ingo

      hmm. war mir schon klar, aber formulare sind trotzdem HTML, ob die nun bei den checkboxen ein onclick-even aus JS haben oder nicht.

      Hast du vll. eine genauere vorstellung, wie ich die checkboxen per JS setzen lasse, wenn ich keine Ahnung hab, wie die heissen?

      mfg
      Micha

  2. Hell-O!

    nun soll da aber neben jede spalte eine checkbox hin, welche dem benutzer ermöglicht sich spalten zu wählen, welche bei der suche relevant sind. dafür möchte ich pro formular noch eine checkbox setzen, mit der man gleichzeitig alle anderen checkboxen im formular an- bzw. aus stellt.

    Dafür brauchst du ein wenig Javascript. Gehe alle Formularelemente durch und prüfe ihren Typ. Wenn es eine Checkbox ist, prüfe, ob sie Ausgewählt ist und ändere den Zustand. Zusätzlich kannst du noch den Namen prüfen, wenn es auch andere Checkboxen gibt, die du nicht erfassen willst.

    Siechfred

    --
    Hier könnte Ihre Werbung stehen.
    Dark Millennium || Die neue 1%-Regelung
    1. Hell-O!

      nun soll da aber neben jede spalte eine checkbox hin, welche dem benutzer ermöglicht sich spalten zu wählen, welche bei der suche relevant sind. dafür möchte ich pro formular noch eine checkbox setzen, mit der man gleichzeitig alle anderen checkboxen im formular an- bzw. aus stellt.

      Dafür brauchst du ein wenig Javascript. Gehe alle Formularelemente durch und prüfe ihren Typ. Wenn es eine Checkbox ist, prüfe, ob sie Ausgewählt ist und ändere den Zustand. Zusätzlich kannst du noch den Namen prüfen, wenn es auch andere Checkboxen gibt, die du nicht erfassen willst.

      Siechfred

      wie geh ich mit JS denn alle Elemente durch, wenn ich deren Namen nicht weiss?

      mfg
      Micha

      1. wie geh ich mit JS denn alle Elemente durch, wenn ich deren Namen nicht weiss?

        Schau dir auf der zum Thema Formularelemente verlinkten Seite die allgemeinen Erläuterungen an, dort steht, wie man auf die Elemente zugreift. Wenn du den Namen des gesuchten Elementes nicht weißt, lasse ihn weg. Das Ergebnis deiner Abfrage ist dann eine Kollektion aller Formularelemente, die du über ihre Indexnummer ansprechen kannst.

        Siechfred

        --
        Hier könnte Ihre Werbung stehen.
        Dark Millennium || Die neue 1%-Regelung
      2. Hi,

        wie geh ich mit JS denn alle Elemente durch, wenn ich deren Namen nicht weiss?

        wieso weisst Du die Namen nicht? Zumindest Dein PHP-Script sollte sie doch kennen - also generiere hiermit ein passendes Javascript.

        freundliche Grüße
        Ingo

        1. Hi,

          wie geh ich mit JS denn alle Elemente durch, wenn ich deren Namen nicht weiss?
          wieso weisst Du die Namen nicht? Zumindest Dein PHP-Script sollte sie doch kennen - also generiere hiermit ein passendes Javascript.

          freundliche Grüße
          Ingo

          PHP kennt die namen nur so lange, wie es die tabellen generiert. vergiss den unterschied zwischen serverseitig und clientseitig. wenn die seite geladen ist, ist den php part längst vorbei und da steht nur noch HTML-Code für ne Tabelle mit irgendwelchen Namen und Beschriftungen, wie sie die Datenbank vorgibt (d.h. ziemlich willkürlich).

          mfg
          Micha

          1. wieso weisst Du die Namen nicht? Zumindest Dein PHP-Script sollte sie doch kennen - also generiere hiermit ein passendes Javascript.
            PHP kennt die namen nur so lange, wie es die tabellen generiert.

            Und während dessen generiert es ein Javascript, das es dann zusammen mit der fertigen Seite ausliefert.

            Siechfred

            --
            Hier könnte Ihre Werbung stehen.
            Dark Millennium || Die neue 1%-Regelung
            1. wieso weisst Du die Namen nicht? Zumindest Dein PHP-Script sollte sie doch kennen - also generiere hiermit ein passendes Javascript.
              PHP kennt die namen nur so lange, wie es die tabellen generiert.

              Und während dessen generiert es ein Javascript, das es dann zusammen mit der fertigen Seite ausliefert.

              Siechfred

              hmm, also "eigentlich" gibts da sone schöne schleife, die durchläuft ein array mit $name => $wert, wobei $name dann der name für textboxen ist, der mit nem onchange event von select-boxen gesetzt wird.
              was das jetzt mit dem thema zu tun hat? - nüschts.
              Wieauchimmer. Ich kann schwer im schleifendurchlauf "nebenbei" das script generieren, weil das ganze innerhalb von mehreren geschachtelten schleifen stattfindet. das soll heissen, dass bevor die alle abgelaufen sind noch nicht feststeht, wie was wo und warum heisst. wenn ich danach irgendwelche skripte generieren möchte, muss ich den ganzen unsinn zweimal durchlaufen lassen...

              mfg
              Micha

              1. Hallo Michael.

                Ich kann schwer im schleifendurchlauf "nebenbei" das script generieren, weil das ganze innerhalb von mehreren geschachtelten schleifen stattfindet. das soll heissen, dass bevor die alle abgelaufen sind noch nicht feststeht, wie was wo und warum heisst. wenn ich danach irgendwelche skripte generieren möchte, muss ich den ganzen unsinn zweimal durchlaufen lassen...

                Wenn du alles sofort ausgibst, dann ist das klar. Das musst du aber nicht.

                Du könntest einfach am Anfang eine Variable als „Sammler“ festlegen und im Scriptverlauf die zukünftigen Ausgaben einfach daran anhängen. Den Inhalt dieser Variable kannst du vor der Ausgabe nach Belieben manipulieren und zum Beispiel ein Script-Element an den Anfang setzen.

                Einen schönen Freitag noch.

                Gruß, Ashura

                --
                sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                [HTML Design Constraints: Logical Markup]
                1. Wofür denn eigentlich der ganze Aufwand?!

                  Man kann doch einfach mit einem Javascript alle Checkboxen durchgehen.

                  for(i=0; i < document.formular.elements.length; i++){
                    if(document.formular.elements[i].type == "checkbox")
                      document.formular.elements[i].checked = true;
                  }

              2. Hi,

                hmm, also "eigentlich" gibts da sone schöne schleife, die durchläuft ein array mit $name => $wert, wobei $name dann der name für textboxen ist, der mit nem onchange event von select-boxen gesetzt wird.
                was das jetzt mit dem thema zu tun hat? - nüschts.

                Aber natürlich doch. "Merke" Dir einfach die Namen beim Generieren des HTML-Cdes.

                Wieauchimmer. Ich kann schwer im schleifendurchlauf "nebenbei" das script generieren, weil das ganze innerhalb von mehreren geschachtelten schleifen stattfindet. das soll heissen, dass bevor die alle abgelaufen sind noch nicht feststeht, wie was wo und warum heisst. wenn ich danach irgendwelche skripte generieren möchte, muss ich den ganzen unsinn zweimal durchlaufen lassen...

                nö. Wie Ashura schon gesagt hat, kannst Du am Ende des HTML-Codes (also nachdem Deine Schleifen duchgelaufen sind) einen Javascriptblock in das Dokument schreiben.

                freundliche Grüße
                Ingo

      3. Moin!

        wie geh ich mit JS denn alle Elemente durch, wenn ich deren Namen nicht weiss?

        Fast genauso, wie in PHP: http://de.selfhtml.org/javascript/sprache/schleifen.htm#for

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!