tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
754
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von splat
    splat splat ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Sydney, Australia
    Beiträge
    311
    Hi!

    Ich habe es mittlerweile mal geschafft ein Formular zur erstellen, das solange aufgerufen wird, bis alle Daten richtig eingegeben wurden. Danach werden alle Daten in einer Session gespeichert und eine Bestätigungsseite kommt zum Vorschein. Soweit so gut.. Jetzt würde ich gerne das Formular in 3 kleinere Seiten unterteilen.. Also zuerst Formular 1, dann Formular 2 und zum Schluss Nr 3. Natürlich erst immer dann wenn die vorherigen Seiten keine Fehler liefern. Kann mir da jemand einen Tip geben wie ich das am geschicktesten machen kann?

    So sieht das ganze momentan aus (abgespeckte Version):

    PHP-Code:
    $template_to_show "templates/formular.php";

    /* formular wurde abgeschickt */
    if (match_referer() && isset($_POST)) {
            
    $frm $_POST;
            
    $errormsg validate_form($frm$errors);

    /* wenn alle daten angegeben wurden, neue session variable
     * erstellen und weiter zur Bestätigung */
            
    if (empty($errormsg)) {
                    
    save_data($_POST);
                    
    $template_to_show "templates/confirm.php";
            }
    }

    $frm $_REQUEST;
    include(
    $template_to_show);

    /******************************************************************************
     * FUNCTIONS
     *****************************************************************************/

    function validate_form(&$frm, &$errors) {

        
    $errors = new Object;
        
    $msg "";

        if (empty(
    $frm["name"])) {
            
    $errors->name true;
            
    $msg .= "Sie müssen ihren Namen angeben.";

        } if (empty(
    $frm["email"])) {
            
    $errors->email true;
            
    $msg .= "Sie müssen ihre Email Adresse angeben.";

        }
        return 
    $msg;
    }
    ?> 
    Bin für jeden Tip dankbar!!

    Gruß, Marc
     

  2. #2
    Avatar von ava99
    ava99 ava99 ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    278
    Hallo,

    vielleicht kannst du es mit einer IF-Anweisung machen


    Grüße
    ava99
     

  3. #3
    Avatar von splat
    splat splat ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Sydney, Australia
    Beiträge
    311
    ja, aber wie am besten
    komm da einfach nicht dahinter
     

  4. #4
    Avatar von Lichtpilger
    Lichtpilger Lichtpilger ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    Friedrichshafen / Bodensee
    Beiträge
    101
    Hullo,
    ich hab sowas auch mal gebaut und es mir dabei einfach gemacht.

    1.Formular wird abgeschickt an das ->
    2.Formular , dort wird erstmal alles in "hidden"-Textfeldern gespeichert und kontrolliert ob alles richtig und vollständig ausgefüllt wurde.
    Wenn nein, dann erschien eine meldung das nit alles in Ordnung war und man musste einen "send" Button drücken um zurück zu kommen. Es wurden aus den "hidden" Feldern die Daten zurückgeschickt an das erste Formular und dort wieder in die entsprechenden Feldern eingetragen.
    Wenn alles in Ordnung war, erschienen durch die if-abfrage ("if alles ok") die neuen eingabefelder.
    Dann das gleiche Spiel wieder:
    Die Daten vom 1. und 2. Formularblatt wurden im 3. Formularblatt in "hidden"Felder gespeichert und wieder die entsprechenden kontrollen durchgeführt ob alles ok ist.

    Naja im grunde is die sache mit den "hidden"Feldern sicher stupid gegenüber der session methode.
    Aber es hat alles funktioniert eben so wie es sollte

    Es ist evtl etwas Arbeit das jetzt auf mehrere Blätter zu packen und die ganzen "hidden"Felder zu baun, aber es ist eine möglichkeit

    Grüße,
    Lichtpiler
     
    Des Narren Paradies ist dem Weisen eine Hölle.

  5. #5
    Avatar von splat
    splat splat ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Sydney, Australia
    Beiträge
    311
    Hallo Lichtpilger!

    das habe ich mir auch schon überlegt.. aber das wäre dann wirklich nur die Notlösung Würde das schon gerne alles sauber zentral in einem File haben. Irgendwie muss das doch gehen... bin die ganze Zeit schon am probieren.. aber so richtig bekomm ich das nicht hin.

    PHP-Code:
    /* formular 1 wurde abgeschickt */
    if (match_referer() && isset($_POST)) {
            
    $frm $_POST;
            
    $errormsg_1 kontrolle_form1($frm$errors);

            
    /* formular 2 */
            
    if (empty($errormsg_1)) {
                    
    speichere_daten_von_form1_in_session($_POST);
                    
    $template_to_show "templates/formular2.php";
                    
    $frm $_POST;
                    
    $errormsg_2 kontrolle_form2($frm$errors);

    ...

    $frm $_REQUEST;
    include(
    $template_to_show); 
    Template = Formular1
    Wenn Formular1 abgeschickt wird & keine Fehler in Formular1 -> Template = Formular2

    Aber wenn ich jetzt bei Formular2 einen Fehler bekomme, dann werde ich wieder an Formular1 zurückgeworfen :/

    Ne Idee?
    Komme da nicht mehr weiter.. :|
     

Ähnliche Themen

  1. Formular-Array? Mehrere (Gleiche) Formulare öffnen.
    Von sinni800 im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 12.11.07, 18:04
  2. mehrere divs hintereinander
    Von SuReBuRn im Forum CSS
    Antworten: 11
    Letzter Beitrag: 03.02.06, 06:31
  3. mehrere Formulare hintereinander
    Von soa im Forum PHP
    Antworten: 4
    Letzter Beitrag: 09.09.05, 16:14
  4. mehrere Formulare überprüfen & Formular an iframe schicken
    Von olivergries im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 01.04.05, 08:38
  5. Mehrere sql-Befehle hintereinander
    Von bled im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.02.05, 16:40