Checkbox: Auch wenn nicht angeklickt Wert übermitteln...

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

  • Checkbox: Auch wenn nicht angeklickt Wert übermitteln...

    Hallo!

    Ich habe ein kleines Problem, auf dessen Lösung ich nicht komme. Ich habe einen Fragebogen mit PHP-Übertragung geschrieben. Dabei können Checkboxen angewählt werden.
    Nun möchte ich (wegen der besseren Übersichtlichkeit bei der Auswertung), dass auch die Checkboxen, die nicht vom Nutzer angeklickt wurden einen Wert (0) erhalten und übertragen werden.
    Ich bekomme leider keine vernüftige Lösung hin...

    Des Weiteren: Weiß jemand, wie man für einen Bereich in einem Formular vorgeben kann, dass nur eine bestimmte Anzahl von Checkboxen angeklickt werden dürfen... Also von 10 nur 3???

    Mit besten Dank!
    Benda!

  • #2
    nicht aktivierte CBs werden nicht übertragen! verwende evtl. hidden-felder, um deinem script alle CBs bekannt zu machen. prüfe dann im script, ob ein wert gesendet wurde oder nicht.

    3 aus 10 kannst/musst du mit JS lösen, wenn du das formular nicht erst absenden willst.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      nicht aktivierte CBs werden nicht übertragen! verwende evtl. hidden-felder, um deinem script alle CBs bekannt zu machen. prüfe dann im script, ob ein wert gesendet wurde oder nicht.
      Hm, also Hidden-inputs mit den gleichen Namen und mit keinen bzw. anderen values als die Checkboxen - müssen dann aber im Quelltext vor den Checkboxen platziert werden, damit eine aktivierte Checkbox den value des Hidden-inputs überschreiben kann, oder? Der Sinn des ganzen bleibt mir aber irgendwie verborgen - egal was erreicht werden soll, ich denke es ginge eleganter.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        also Hidden-inputs mit den gleichen Namen
        nicht mit gleichem namen, sondern eine art referenzname.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          glaub ich verstehe - auch ne Möglichkeit.

          trotzdem denke ich, dass das eigentlich nicht sein müsste
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Original geschrieben von Quetschi
            Der Sinn des ganzen bleibt mir aber irgendwie verborgen - egal was erreicht werden soll, ich denke es ginge eleganter.
            Der Sinn des ganzen ist folgender.
            Die Checkboxen sind Bestandteil eines Fragebogens. Und um ihn besser auswerten zu können benötige ich auch die Felder, die nicht beantwortet (abgehakt) werden. Sonst müsste ich diese manuell in Excel weitervearbeiten (eintragen).
            Deshalb dachte ich, mann kann - ähnlich wie bei einem Texteingabefeld - über Value arbeiten und einfach eine 0 oder so angeben, wenn das Feld nicht angeklickt wird. Aber ich habe Value schon als Wert der Checkbox fetsgelegt, um sie wieder zu erkennen.

            Irgendwie glaube ich, die Lösung ist einfach - aber manchmal scheint es komplizierter, als man denkt...

            Kommentar


            • #7
              Original geschrieben von benda8
              Die Checkboxen sind Bestandteil eines Fragebogens. Und um ihn besser auswerten zu können benötige ich auch die Felder, die nicht beantwortet (abgehakt) werden.
              Es ist doch nicht schwer, daraus, dass ein Wert eben nicht übermittelt wurde, den Schluss zu ziehen, dass die Checkbox eben nicht angekreuzt war ...

              Du musst nur dafür sorgen, dass die angekreuzten Checkboxen eindeutig indentifizierbar sind, also nicht einfach "der Reihe nach" unter dem selben Namen eintrudeln.
              Wenn du dann die Liste der übermittelten Werte mit den Antwortmöglichkeiten abgleichst, weißt du doch, welche Checkboxen nicht angekreuzt worden sind.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                mach doch statt checkboxen ja/nein radio buttons :-)

                Kommentar


                • #9
                  Original geschrieben von becstift
                  mach doch statt checkboxen ja/nein radio buttons :-)


                  Eher nicht. Soll ja übersichtlich bleiben...

                  Mir geht es eher um die Kompatibilität zu Excel. Ich kann per Textfile-Import erreichen, dass das ganze wie Spalten ausgelesen wird...

                  Also aus:

                  Checkbox Wert
                  F1 : 1
                  F2 : 2
                  F3 :
                  F4 : 1
                  F5 : 1

                  wird in Excel:
                  Spalte 1 Spalte 2
                  F1 | 1
                  F2 | 2
                  F4 | 1
                  F5 | 1

                  Und hier liegt der Hund begraben. ich müsste nun Wert 3 per Hand eingeben... Bei insgesamt 150 mögl. Antworten ist das ziemlich unübersichtlich... Deshalb der Threat!

                  Ich möchte als nur erreichen, dass in dem Falle der Checkbox 3 der Wert 0 zugeordnet wird und mitübertragen...

                  Kommentar


                  • #10
                    Von weitem gesagt: Array + Schleife wär z.B. ne Möglichkeit.

                    EDIT:

                    Poste bitte mal den Quellcode für 4-5 deiner Checkboxen.
                    Zuletzt geändert von Quetschi; 20.01.2006, 12:35.
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      Ich mache das seit Jahren so, wie Haxe es vorgeschlagen hat, und bin rundum glücklich.


                      Es gibt die Checkbox:

                      spalteF4

                      und ein Hidden-Feld:

                      spalteF4_negativevalue = "0"

                      beim Verarbeiten werden nun alle Request-Variablen in einer Schleife durchgearbeitet. Alle Variablen, deren Name mit "_negativevalue" endet, werden darauf hin überprüft, ob ihre "Stammvariable" einen Wert besitzt. Falls nein, wird die Stammvariable mit dem Wert aus "_negativevalue" überschrieben. Fertig.

                      EDIT:
                      Editiert, habe zwei Standard-Vorgehensweisen

                      Zuletzt geändert von pekka; 20.01.2006, 12:48.

                      Kommentar


                      • #12
                        bei 150 Checkboxen dann 150 hidden-felder dazu?

                        Ein Modem-user braucht da ja dann schon ne halbe Ewigkeit um den Request an den Server zu bringen - ich würd sowas rein Serverseitig lösen.
                        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                        Schön - etwas Geschichte kann ja nicht schaden.
                        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                        Kommentar


                        • #13
                          Die 150 Hidden-Felder machen in der Performance gar nichts bzw. kaum was. Da dauert die Übertragung eines großen Bildes länger.

                          Kommentar


                          • #14
                            Naja, es ist noch nicht wirklich tragisch vor allem bei wenig Feldern - aber von dem Lösungsweg in deinem Edit mal ausgegangen und angenommene 150 Felder macht das mehr als 3,5 KB zu übertragen nur für die Hiddenfelder - ein 56K-Modem braucht dazu schon mehr als eine halbe Sekunde um allein die Daten der Hidden-felder an den Server zu senden - eine schon leicht spürbare Verzögerung die in meinen Augen nicht unbedingt sein müsste.

                            Einfach ein HiddenFeld in das Formular, das angibt wieviele Felder das Script zu erwarten hat.

                            Für diese Anzahl wird dann im verarbeitenden Script erstmal in ner Schleife ein Array mit nem Standardwert gefüllt - danach werden die $_GET bzw. $_POST-felder durchgearbeitet und das Array mit den Standardwerten ggf. mit den Werten der angekreuzten Checkboxen oder was weiß ich was überschrieben.

                            Ich find das so einfach 'eleganter'... von dem Umstand 150 Hiddenfelder in ein Form zu packen sowieso mal abgesehen.
                            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                            Schön - etwas Geschichte kann ja nicht schaden.
                            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                            Kommentar


                            • #15
                              die hidden-felder sind auch nur ein vorschlag. natürlich kann man das komplett serverseitig machen.

                              man kann sich auch die hidden-felder pseudo-mäßig in eine session schreiben und dies miteinander vergleichen.

                              das prinzip des vergleichens ist aber dennoch vorhanden.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X