Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular aus Json Array Laden - Auch die Checkboxes "unchecken"

Einklappen

Neue Werbung 2019

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

  • Formular aus Json Array Laden - Auch die Checkboxes "unchecken"

    Guten Tag,

    Ich habe hier ein schönes Beispiel womit sich ein Formular aus einem JSON Array füllen lässt.

    Wenn ich hier nun eine Checkbox auswähle und Speichere. Anschließend alle 3 markiere und wieder mit Load lade dann bleiben alle drei Checkboxes markiert.

    https://codepen.io/b1nary/pen/XJWaYE

    Ich möchte nun erreichen dass die Checkboxen die in dem JSON Array nicht "gecheckt" sind auch wieder deselektiert werden. Wie muss ich da das entsprechende JS anpassen? Es gibt ja keinen value den ich z.B. ersetzen kann.

    MFG. phpCrow

  • #2
    Checkboxen werden unchecked nicht übertragen, ergo musst Du die aus dem JSON entfernen. Ist allerdings nur ins Blaue geraten, da ich grad auf'm Handy unterwegs bin.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Das meine ich garnicht, vielleicht erkläre ich es mal anders:

      Ich habe ein Formular mit vielen Checkboxen, Radio Buttons, Textboxen und anderen Formularelementen. Daraus wird später eine Datenbankabfrage zusammengestückelt, man kann also auswählen welche Spalten später dargestellt werden sollen und auch nach welchen Where Bedingungen gefiltert werden soll. Dazu noch kleine Funktionen wie die Angabe des Query Limits oder die Sortierung (Feld - Auf- oder Absteigend).

      Nun möchte ich dem Benutzer ermöglichen diese Abfrageparameter (Formularwerte) zu speichern, um zu einem späteren Zeitpunkt die gleiche Abfrage nochmal ausführen zu können.

      Dies tue ich derzeit mit der oben verlinkten Javascript Funktion, es hat aber noch seine "tücken"...

      - Checkboxen die einmal gecheckt sind werden bei einer "Vorlage" beid er die Checkbox nicht gecheckt ist nicht wieder deselektiert
      - Generell ist das der richtige Weg die Abfrage Parameter in einem JSON Array zu speichern? Das wäre auf jeden Fall sinnvoller als mit einer Fest definierten Datenbanktabelle, da bei neuen Feldern sonst alles angepasst werden muss.

      Wie würdet ihr sowas realisieren? Ist mein Ansatz da der richtige?

      Vielleicht habt ihr euch Ideen zur besseren realisierung von einer Dynamischen Abfrage? Eigentlich so ähnlich wie https://codeinphp.github.io/post/vis...y-builder-app/ nur dass man auch Abfragen speichern kann (und ein paar mehr Parameter wie Ausgabeformat übergeben werden -> PDF, XLSX, ODF).

      MfG. phpCrow

      Kommentar


      • #4
        Also wenn ich es richtig verstanden habe .

        Du gest ZB auf Seite XY und mußt da aus welchen grund auch immer ein paar checkboxen drücken.
        Am nächsten Tag gehst du wieder auf der Seite und die Boxen die du am Vortag makiert hast sind jetzt schon vor makiert? Richtig?

        Das sind ja nur paar zeichen dieMan dafür speichern muß.Das könnte manim Cookie speichern .Finde ich nicht so gut .
        Oder halt als local.storage bzw session.storage
        Ich mach keine Rechtschreibfehler - ich schreib Freestyle!
        Erreichbar in mein Javascript-Forum und in Facebook-Chat

        Kommentar


        • #5
          Nicht ganz, ich habe ein HTML Formular entwickelt welches mittels PHP das Ergefbnis einer Datenbankabfrage dynamisch zurückgibt, Also mit von Benutzer gewählten Parametern.

          Je nachdem kommt ein anderer Bericht heraus. Und diese Berichtsparameter soll der Benutzer speichern können. Am besten in der SQL Datenbank der Webanwendung. Zu eine späteren Zeitpunkt kann er so die gleiche Abfrage wieder ausführen. Ggf. auch ein anderer Benutzer wenn ich eine Kopieren funktion einbaue, oder Globale Berichte erstelle.

          Es geht sowohl um Checkboxes, als auch Radio Buttons und Text Inputs. Ggf. kommen noch weitere Input Typen hinzu, sodass ich mittels des JSON Arrays eine möglichst hohe flexibilität erzielen wollte.

          MfG.phpCrow

          Kommentar


          • #6
            Setze doch einfach das Formular mit reset() zurück.

            Kommentar


            • #7
              Da bin ich nicht drauf gekommen, einfacher geht es nicht.

              Danke!

              Aber generell nochmal die Frage: Ist das so der richtige Ansatz oder gibt es bessere Lösungen für meine Parameter speicherung?

              Kommentar


              • #8
                Wenn ich das richtig gesehen habe nutzt du zum speichern ja schon localstorage. es gibt noch cookies ,aber davon halte ich nix. .Also localstorage und sessionstorage ist meiner meinung schon ganz in ordnung.Ich würde es genau so machen
                Ich mach keine Rechtschreibfehler - ich schreib Freestyle!
                Erreichbar in mein Javascript-Forum und in Facebook-Chat

                Kommentar


                • #9
                  Zum Speichern nutze ich eine MySQL Datenbank. Unszwar aus dem Grund, dass die Daten dauerhaft in dem System verfügbar sein sollen und ggf. auch anderen nutzern bereitgestellt werden.

                  Kommentar


                  • #10
                    Das Checkboxen von Formularen bei unchecked nicht übertragen werden ist schon irgendwie blöd. Es müssen irgendwie immer die fehlenden Informationen ergänzt werden, wenn das Formular gespiegelt wird oder eine DB aktualisiert werden soll. Da ich das HTML für meine Checkboxen per PHP generiere, kann ich dort bei Bedarf automatisch vor dem input type=checkbox ein hidden-input mit den gleichen Namen und value=0 setzen.
                    Ist letztlich nur ein Workaround, bekomme so aber immer für alle Checkboxen Werte geliefert und kann so die kompletten Inputwerte validieren und weiterverarbeiten.

                    Kommentar


                    • #11
                      Da das Formular ja vom Server generiert wird und somit der Server auch alle Felder kennt, gibt es keinen Grund leere Checkboxen zu übertragen.

                      Kommentar

                      Lädt...
                      X