Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrseitiges Formular überprüfen?

Einklappen

Neue Werbung 2019

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

  • Mehrseitiges Formular überprüfen?

    Hallo ich hab ein ziemliches Denkproblem in meinem Script. Ich hab ein Formular über 3 seiten, die Variablen übergebe ich mit einem hidden field. Gleichzeitig möchte ich aber die Eingaben auf fehler überprüfen. Beides funktioniert einwandfrei, nur nicht zusammen. Kann ich vielleicht über die header funktion auch variablen übergeben?
    Denn entweder rufe ich mit form action die neue seite auf zum variablen posten oder die aktuelle zum eingaben überprüfen...
    weiß wer eine lösung?

  • #2
    du kannst per header variablen übertragen. aber werden die dann halt in der
    url sichtbar, was nicht ganz sinn der sache ist. ich würde dafür eher sessions
    verwenden, weil auch hidden type felder sind nicht grad das gelbe vom ei.

    Kommentar


    • #3
      hm ich wollt es eigentlich so einfach wie möglich machen sodass es überall funktioniert und sessions brauchen doch wieder cookies oder?
      wie kann ich denn mit header variablen übergeben?

      ich habs jetzt so gelöst, allerdings muss ich dafür nochmal automatisch den submit button aktivieren - geht das mit php irgendwie? es funktioniert nämlich so ganz gut nur muss man in der version eben 2 mal den submit button klicken weil er ja erst $weiter setzt nachdem der button einmal geklickt wurde. ich bräuchte also was zum submit true setzen...

      if ($error == 0){
      $weiter = "Student_Application_p2.php";


      <form action="<?php print $weiter ?>" method="post">

      Kommentar


      • #4
        wo genau liegt das problem?

        versteh ich das richtig: du fragst auf der ersten seite ein paar sachen ab. dann soll der user auf weiter klicken, dadurch werden die daten auf der nächsten seite in einem hidden-feld gespeichert. doch bevor das passiert, soll erst noch geprüft werden, ob die daten den überhaupt richtig sind.

        war das so richtig?

        ja ich würde halt einfach ne abfrage machen, ob die daten richtig sind, wenn net, das vorherige formular anzeigen und darin über value schon die daten, die richtig sind, vorbelegen. dann sendet der user es neu ab, wenns dann passt kommt eben das neue formular und unten darn hängen eben die hidden-fields, die dann auf der dritten seite allerdings wieder geprüft werden sollten, denn sie stehen ja im quelltext drin und den kann man ja einfach mal ändern.

        ode du speicherst es in einer db/datei wie auch immer temporär ab und wenn dann alles fertig ist holst du es da alles wieder zusammen raus.

        Kommentar


        • #5
          ja genau das ist es und genau das ist auch das problem: was schreib ich in action:"" rein? die aktuelle seite oder die nächste seite?
          ich hab eine abfrage die mir falls falsch eben fehlermeldungen ausgibt, und dann eben wenn unter action= die gleiche seite steht nochmal die seite mit den fehlermeldungen anzeigt. um aber auf die nächste seite zu kommen muss im action= die url der nächsten seite stehen....
          ich steh ziemlich auf der leitung.....

          Kommentar


          • #6
            hm, ich würde das alles in einer php datei machen.
            und dann eben noch ein hidden-field übertragen, das sagt, welche (ausgabe-)seite denn jetzt gewüscht ist oder von welcher (ausgabe-)seite man kommt.
            mit anderen worten. der user bekommt drei seite zu gesicht, die aber auf dem server eine einzige php-datei sind, die anhand dieses hidden-fields entscheidet, was sie jetzt ausgibt.

            Kommentar


            • #7
              hmm das heißt den ganzen inhalt innerhalb einer php z.b. if - abfrage formatieren und je nachdem hin und herspringen? is dasnicht etwas umständlich?
              oder wie funktioniert das sonst mit den drei seiten in einem?

              Kommentar


              • #8
                naja, ich hätte jetzt mal gedacht, dass du die fragen zb aus ner db oder ner extrenen datei holst. und dann kannst du das ja leicht in einer schleife ausgeben und eben je nach fragen art eben auf gültigkeit überprüfen.

                evtl hilft dir aber auch einfach nur ein switch.

                bei drei seiten würd ich es so machen: auf der zweiten seite abfragen, ob das von der ersten richtig ist und wenn nicht, nen fehler anzeigen und der user muss dann auf den zurück button klicken. dann stehen wieder aller werte drin. ist aber nicht ganz so sauber.

                oder aber du machst dir ein hauptfile, der immer aufgerufen wird und in den bindest du mit include einfach die jeweiligen fragen ein. wenn falsche antwort die gleichen nochmal, wenn richtige, oder besser gesagt, gültige, dann die nächsten.

                Kommentar


                • #9
                  Schau dir mal den PEAR::HTML_QuickForm_Controller an - der ist für sowas gemacht und hat einige gute Beispiele dabei

                  http://pear.php.net/package/HTML_QuickForm
                  http://pear.php.net/package/HTML_QuickForm_Controller

                  Ein bischen OOP und PEAR muss man allerdings kennen - aber wenns erstmal läuft, gehts prima!

                  Möglichkeiten
                  - einfache Form-Elemente
                  - Gruppen
                  - (Gruppen-) Regeln und Filter
                  - Mehrseitige Formulare mit Standardaktionen (weiter, zurück, ...)
                  ....

                  Grüße,
                  Marco

                  Kommentar


                  • #10
                    mach das mit sessions. das wurde oben ja schon angesprochen, wenn auch von dir zunächst abgelehnt.
                    du kannst die daten in den sessionvariablen speichern, dann sind die inhalte auch nicht im quelltext zu sehen (was sehr vorteilhaft ist).

                    bzgl. deines "problem" mit sessions einfach mal googeln:
                    http://www.dclp-faq.de/q/q-sessions-fallback.html

                    für die kontrolle, ob die eingaben richtig sind würde ich eine funktion bzw. eine methode, wenn du OOP verwendest, implementieren. dann hast du nicht so viel quellcode, falls du dich entscheiden solltest das formular nicht in eine datei zu packen.

                    grüße ben

                    Kommentar

                    Lädt...
                    X