Oftmals müssen Website-Entwickler eine große Menge an Daten sammeln, die der Benutzer eingeben muss. Dazu ist es sehr nützlich, die Daten nach Abschnitten oder Kategorien in verschiedenen Bildschirmen oder Schritten zu trennen. Eine Möglichkeit, Sitzungen oder Bildschirme in Schritten zu erstellen, sendet jedes Formular in jedem Abschnitt die eingegebenen Daten an das nächste Formular und dieses muss die Werte auf eine Weise beibehalten und kann sie von einer Seite auf eine andere übertragen.
Um die Persistenz der Daten zwischen den Seiten aufrechtzuerhalten, können wir PHP-Sitzungen oder eine temporäre Datenbanktabelle verwenden, in der wir die Daten speichern können, die wir von Seite zu Seite übergeben. Und am Ende speichern wir die gesammelten Daten und löschen die temporären.
In diesem Tutorial werden wir zeigen So erstellen Sie ein mehrseitiges Formular mit PHP-Skript. Wir werden auch sehen, wie Sie Fehler zwischen den Formularen vermeiden können.
Wir werden PHP-Sitzungen verwenden, um die Werte der Felder jedes Formulars zu speichern.
Als nächstes erstellen wir eine Datenbank namens Firma und dann eine Bewerbertabelle.
CREATE DATABASE `company` CREATE TABLE IF NOT EXISTS` Bewerber` (`id` int (10) NOT NULL,` name` varchar (255) NOT NULL, `email` varchar (255) NOT NULL,` address` varchar (50 ) DEFAULT NULL, `phone` varchar (50) DEFAULT NULL,` mobile` varchar (50) DEFAULT NULL, `education` int (11) DEFAULT NULL,` post` int (11) DEFAULT NULL, `experience` int (11 ) DEFAULT NULL, `description` text) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = latin1;Wenn wir Formulare mit vielen Daten haben, möchte der Benutzer ein Formular mit mehr als 10 Feldern nicht ausfüllen, daher ist es eine gute Idee, das Formular auf mehreren Seiten abzudecken.
Dies kann dem Benutzer die Nachvollziehbarkeit erleichtern, zum Beispiel können wir die Daten in separate Abschnitte unterteilen, basierend auf dem Umfang oder den Kategorien der Informationen, getrennt von persönlichen Informationen, Kundeninformationen, Ihren akademischen oder beruflichen Daten sowie Ihrem Geschmack oder Präferenzen, sehen wir es auch viel bei der Abwicklung von Käufen vor den Zahlungsdaten in einem Warenkorb, wo Rechnungsdaten, Versanddaten und Produktdaten getrennt werden.
Eine der Herausforderungen, die sich aus der Aufteilung des Formulars auf mehrere Seiten ergeben, besteht darin, die Daten von einer Seite zur anderen zu übergeben, da wir am Ende des Formulars alle notwendigen Daten zur Verarbeitung bereithalten. Wir werden dafür zwei Methoden in Betracht ziehen: Sitzungsvariablen und versteckte Eingabefelder.
Daher hat die Sitzung einen semipermanenten Charakter, ermöglicht es uns, eine gewisse Persistenz zu schaffen und kann verwendet werden, um Variablen über verschiedene Seiten hinweg zu übergeben, auf denen die Besucher während eines Besuchs der Site landen.
Wir erstellen dann das erste Formular, das einige Felder enthält:
PHP-MehrfachformularWir werden auch die Stylesheets hinzufügen, um unserem Formular ein eleganteres Design zu verleihen, daher erstellen wir eine Datei stile.css, nach dem Auftragen wird es wie folgt aussehen.Form 1
Name: E-Mail: Adresse: Telefon: Mobiltelefon:
div.container {Breite: 960px; Höhe: 550px; Rand: 50px automatisch; } div.main {Breite: 100%; Rand oben: 35px; Schwimmer: links; Rahmen: 2px solid # 8fc400; Füllung: 0px 50px 20px; Schriftfamilie: Arial, Helvetica Neue, Helvetica, serifenlos; } form {margin-top: 20px} .estilotextarea {Breite: 100%; Höhe: 100px; Rahmen: 1px Solid # 999; } h2 {Hintergrundfarbe: Hintergrund: # 8fc400; Hintergrund: -moz-linear-gradient (oben, # 8fc400 0%, # 8fc400 100%); Hintergrund: -webkit-linear-gradient (oben, # 8fc400 0%, # 8fc400 100%); Hintergrund: linear-Gradient (nach unten, # 8fc400 0%, # 8fc400 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); Polsterung: 32px; Rand: 0 -50px; Textausrichtung: Mitte;} b {Schriftgröße: 18px; Bildschirmsperre; Farbe: # 555;} Etikett {Farbe: # 464646; Schriftgröße: 14px; font-weight: fett;} input [type = text], input [type = email] {width: 96%; Höhe: 25px; Polsterung: 5px; Rand oben: 5px; Rand-unten: 15px; } wählen Sie {margin-bottom: 15px; Rand oben: 5px; Breite: 100 %; Höhe: 35px; Schriftgröße: 12px;} Eingabe [Typ = Absenden], Eingabe [Typ = Zurücksetzen] {Padding: 10px; Hintergrund: linear-Gradient (# 058eb5 5%, # 045066 100%); Rahmen: 1px solid # 058eb5; Farbe: # f7f7f7; Cursor: Zeiger; Breite: 20%; Randradius: 2px; Rand-unten: 15px; Schriftdicke: fett; Schriftgröße: 16px;} Eingabe [Typ = Absenden]: Hover, Eingabe [Typ = Zurücksetzen]: Hover {Hintergrund: Linear-Gradient (# 045066 5%, # 058eb5 100%); } .message {border: 1px solid; Rand: 10px 0px; Füllung: 15px 10px 15px 10px; Hintergrundwiederholung: keine Wiederholung; Hintergrundposition: 10px Mitte; Textausrichtung: Mitte; Farbe: # 4F8A10; Breite: 100 %; Hintergrundfarbe: # DFF2BF; }Ich habe jedem Feld die erforderliche Eigenschaft hinzugefügt. Dieses erforderliche Attribut ist ein boolesches Attribut, das angibt, ob das Feld erforderlich ist oder nicht, wahr oder falsch.
Wenn vorhanden, gibt es an, dass dieses Eingabefeld nicht leer sein darf und vor dem Absenden des Formulars ausgefüllt werden muss. Das erforderliche Attribut funktioniert mit den folgenden HTML5-Eingabetypen: Text, E-Mail, Passwort, Kontrollkästchen, Radio und Datei.
Beim Ausfüllen der Daten des ersten Formulars senden wir per Post an das zweite Formular namens form2.php deren Code ist der folgende.
$-Wert) {$ _SESSION ['sessionform1'] [$-Schlüssel] = $-Wert; }?> var13 -> PHP MehrfachformForm 2
Bildungsniveau: ---- Auswählen ---- Technische Universität Andere Anwendbare Position: * ---- Auswählen ---- Serveradministrator Programmierer Designer Berufserfahrung: * ---- Auswählen ---- Keine
Als nächstes senden wir an ein Formular, in dem wir die Daten speichern. Für dieses Tutorial zeigen wir die Daten der vorherigen Sitzungen an, um zu sehen, welche Daten jedes Formular gesendet hat.
$-Wert) {$_SESSION ['sessionform2'] [$-Schlüssel] = $-Wert; } rauswerfen 'Form1 Daten'; $ Sitzungsform1 = $ _ Sitzung ['Sitzungsform1']; rauswerfen ''; print_r ($ Sitzungsform1); rauswerfen ''; rauswerfen 'Form2-Daten'; $ Sitzungsform2 = $ _ Sitzung ['Sitzungsform2']; rauswerfen ''; print_r ($ Sitzungsform2); rauswerfen ''; extrahieren ($ _ SESSION ['sessionform1']); $ Verbindung = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("Firma", $ Verbindung); $ sql = "in Clients einfügen (Name, E-Mail, Adresse, Telefon, Handy, Ausbildung, Position, Erfahrung, Beschreibung)"; $ sql. = "values ('$name', '$ email', '$ address','$phone','$mobil','$ education','$position','$experience',' $ Beschreibung ') "; $ query = mysql_query ($ sql, $ Verbindung); ?> var13 -> PHP Mehrfachform<? if ($-Abfrage) {echo 'Sie haben den Vorgang abgeschlossen und die Daten gespeichert
'; } sonst {Echo 'Die Daten wurden nicht gespeichert
'; } unset ($ _ SESSION ['sessionform1']); unset ($ _ SESSION ['sessionform2']); ?> var13 ->
So können wir die Anzahl der benötigten Formulare hinzufügen und in jedem Formular speichern wir die Daten in einer Sitzung und speichern dann alle Sitzungen in einer Datenbank, aber es ist auch nicht möglich, zu einem vorherigen Formular zurückzukehren, da wir die Schrittnummer kennen oder Formular Wir können wissen, welche Sitzung die Daten dieses Formulars enthält und die Daten wiederherstellen.
So erstellen Sie ein Das mehrseitige Formular ermöglicht es uns, Informationen besser zu organisieren, wenn wir viele Daten sammeln müssen
Mehrere Formulare sind heute Bestandteil praktisch jeder Webanwendung. Bei großen Websites mit großen Datenmengen sind sie die wichtigste Methode, um Informationen von den Benutzern zu erhalten, die die Anwendung verwenden. Abhängig von der Reihenfolge, die wir auf der Client-Seite für die Anwendungslogik implementieren müssen, sollten wir uns mit nicht mehr als 10 Feldern überschreiten, aber der Benutzer wird müde und gibt es auf, das Skript muss auch alle notwendigen Sicherheiten enthalten, da wir es sind Sessions verwenden und die Daten könnten abgefangen werden.
Die richtige Methode für die Vermeidung von Sicherheitsproblemen ist die Einkapselung der Datenverarbeitung auf der Serverseite mit pHp.
Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben