Erstellen eines Webbuchungsformulars mit dem Smart Forms-Skript
() translation by (you can also view the original English article)
Buchungsformulare können vielen Zwecke auf einer Website dienen. Sie können sie verwenden, um Ihren Besuchern entweder die Buchung eines Hotelzimmers oder Tickets für eine beliebte Veranstaltung zu ermöglichen. Sie können auch für andere Dinge wie die Buchung von Terminen mit Kunden verwendet werden.
Sie sind eine großartige Möglichkeit für Menschen, Ihnen einfach alle notwendigen Informationen über ihren Aufenthalt oder Besuch zu geben und die Verfügbarkeit zu einem bestimmten Datum zu überprüfen. Das erspart Ihnen und Ihren Kunden viel Ärger.
- JacaScriptErstellen eines JavaScript-Kontaktformulars mit dem Smart Forms FrameworkMonty Shokeen
- JavaScriptBeste JavaScript-Formen 2019Monty Shokeen
- JavaScriptEinfache Formularvalidierung mit jQueryMonty Shokeen
- JavaScriptErstellen Sie kostenlos JavaScript- und HTML5-FormularenMonty Shokeen
Es gibt viele Plugins und Skripte für Sie, um Buchungsformulare zu Ihrer Website hinzuzufügen. Die richtige Wahl für Ihre Situation hängt von den Funktionen ab, die Sie suchen, sowie von Faktoren wie Benutzerfreundlichkeit und Budget. In diesem Tutorial zeige ich Ihnen, wie Sie ein Buchungsformular für Ihre Website mit dem Smart Forms-Skript von CodeCanyon erstellen.
Warum Smart Forms verwenden?
Bevor wir anfangen, tiefer in das Thema einzutauchen, möchte ich erklären, warum ich mich für diese Aufgabe für Smart Forms entschieden habe.
Eines der ersten Dinge, die Sie auf der Beschreibungsseite von Smart Forms beachten werden, ist, dass es eine Menge von Funktionen bietet und es Ihnen ermöglicht, alle Arten von Formularen zu erstellen. Es besteht eine gute Chance, dass die Website, die Sie erstellen, mindestens ein paar andere Arten von Formularen benötigt, z. B. ein Kontaktformular oder ein Kommentarformular. Mit Smart Forms können Sie all dies in kürzester Zeit erstellen.
Sie erhalten auch viele Optionen, wenn es um Anpassung und Funktionen geht. Das Skript wird regelmäßig aktualisiert und erhält immer wieder neue Funktionen. Es bietet auch eine große Anzahl von Starter-Vorlagen mit verschiedenen Formen in drei einzigartigen Stilen und Farbschemata. Auf diese Weise können Sie sicher sein, dass jede Form, die Sie erstellen, sich perfekt mit dem Rest Ihrer Webseite vermischt.
Was wir bauen werden
Erstellen wir das Front-End eines Buchungsformulars mit Smart Forms. Wir erstellen ein Formular, um Hotelzimmer zu buchen. Die gleichen Grundsätze gelten für die Erstellung eines Buchungsformulars für eine Veranstaltung oder eine andere Art von Formular. Sie müssen nur entsprechende Änderungen an Eingabefeldern vornehmen.
Hier ist, was wir erstellen werden:



Erste Schritte
Wenn Sie dies noch nicht getan haben, wäre der erste Schritt, das Skript von CodeCanyon zu kaufen. Sie können die Dateien herunterladen, nachdem Sie das Skript gekauft haben, und Sie haben auch Anspruch auf kostenlose lebenslange Updates und Support für 6 Monate.
Nachdem Sie die heruntergeladene .zip Datei extrahiert haben, werden Sie feststellen, dass sie bereits viele Vorlagen für alles enthält, das von einfachen Kommentar- und Kontaktformularen bis hin zu einigen mehrstufigen Formularen reicht. Sie können einfach eine dieser Vorlagen in Ihren Projekten verwenden und in zehn bis fünfzehn Minuten fertig sein.
Um Ihnen zu helfen, alle Grundlagen zu verstehen, erstellen wir unser Buchungsformular von Grund auf neu.
Erstellen des Buchungsformulars
Das Markup der Buchungsformularseite sollte am Anfang etwa so aussehen.
1 |
<!DOCTYPE html>
|
2 |
<html lang="en"> |
3 |
<head>
|
4 |
<title> Booking Form - XYZ Hotels </title> |
5 |
<meta charset="utf-8"> |
6 |
<meta name="viewport" content="width=device-width, initial-scale=1"> |
7 |
<link rel="stylesheet" href="path/to/css/smart-forms.css"> |
8 |
<link rel="stylesheet" href="path/to/css/font-awesome.min.css"> |
9 |
</head>
|
10 |
<body>
|
11 |
|
12 |
<!-- OUR BOOKING FORM MARKUP -->
|
13 |
|
14 |
</body>
|
15 |
</html>
|
Smart Forms verlässt sich auf Font Awesome, um alle Symbole zum Formular hinzuzufügen, sodass Sie beide CSS-Dateien laden müssen.
Nun gehen wir zum Inhalt unseres Buchungsformulars über. Das Smart Forms-Framework unterteilt das Formular in drei Abschnitte: den Formularkopf, den Formulartext und die Formularfußzeile.
Der Formularkopfabschnitt oben wird verwendet, um den Formulartitel in einer vorzeigbaren Weise anzuzeigen. Für ein Buchungsformular können Sie so etwas wie Online-Zimmer buchen oder Reservierungen in wenigen Minuten vornehmen.
Der Formkörper enthält eine Reihe von Elementen, die von den Besuchern ausgefüllt werden müssen. Sie können hier nach relevanten Informationen fragen, wie die Anzahl der erwachsenen Gäste und die Anzahl der begleitenden Kinder. Ebenso können Sie nach deren Aufenthaltsdauer, Kontaktinformationen und anderen notwendigen Details fragen.
Der Abschnitt "Formularfußzeile" enthält die Schaltflächen zum Absenden oder Abbrechen des Formulars. Er wird prominent am unteren Rand des Formulars angezeigt.
Hinzufügen des Smart Form Boilerplate
Hier ist das Formular-Markup, das wir im Text unserer Webseite hinzufügen müssen, um unser Buchungsformular anzuzeigen.
1 |
<div class="smart-wrap"> |
2 |
<div class="smart-forms smart-container wrap-2"> |
3 |
|
4 |
<div class="form-header header-primary"> |
5 |
<h4><i class="fa fa-calendar"></i>Make Room Reservations in Minutes</h4> |
6 |
</div>
|
7 |
|
8 |
<form method="post" action="/" id="contact"> |
9 |
<div class="form-body"> |
10 |
|
11 |
<!-- OUR FORM ELEMENTS WILL GO HERE -->
|
12 |
|
13 |
</div>
|
14 |
<div class="form-footer"> |
15 |
<button type="submit" class="button btn-primary">Confirm Booking</button> |
16 |
<button type="reset" class="button">Cancel</button> |
17 |
</div>
|
18 |
|
19 |
</form>
|
20 |
|
21 |
</div>
|
22 |
</div>
|
Mit all dem Markup, das wir bisher zu unserer Seite hinzugefügt haben, sollten Sie etwas Ähnliches wie das Bild unten erhalten.



Erstellen der Formularkomponenten
Fügen Sie jetzt unsere aktuellen Formularelemente zum Buchungsformular hinzu. Dies ist das Markup, das Sie dazu benötigen. Es wird in das div
-Tag mit Klasse form-body
gehen.
1 |
<div class="section"> |
2 |
<label for="guestname" class="field-label">Please Enter Your Name</label> |
3 |
<label for="guestname" class="field prepend-icon"> |
4 |
<input type="text" name="guestname" id="guestname" class="gui-input" required="" placeholder="John Doe/Jane Doe"> |
5 |
<span class="field-icon"><i class="fa fa-user"></i></span> |
6 |
</label>
|
7 |
</div>
|
8 |
|
9 |
<div class="frm-row"> |
10 |
<div class="section colm colm6"> |
11 |
<label for="guestemail" class="field-label">Email Address</label> |
12 |
<label for="guestemail" class="field prepend-icon"> |
13 |
<input type="email" name="guestemail" id="guestemail" class="gui-input" required="" placeholder="john@something.com"> |
14 |
<span class="field-icon"><i class="fa fa-envelope"></i></span> |
15 |
</label>
|
16 |
</div>
|
17 |
|
18 |
<div class="section colm colm6"> |
19 |
<label for="guestelephone" class="field-label">Telephone / Mobile</label> |
20 |
<label for="guestelephone" class="field prepend-icon"> |
21 |
<input type="text" name="guestelephone" id="guestelephone" class="gui-input" required="" placeholder="Telephone / Moble Number"> |
22 |
<span class="field-icon"><i class="fa fa-phone-square"></i></span> |
23 |
</label>
|
24 |
</div>
|
25 |
</div>
|
26 |
|
27 |
<div class="frm-row"> |
28 |
<div class="section colm colm6"> |
29 |
<label for="adults" class="field-label">Number of Adults</label> |
30 |
<label for="adults" class="field prepend-icon"> |
31 |
<input type="number" id="adults" name="adults" class="gui-input" required="" placeholder="Number of adults"> |
32 |
<span class="field-icon"><i class="fa fa-users"></i></span> |
33 |
</label>
|
34 |
</div>
|
35 |
|
36 |
<div class="section colm colm6"> |
37 |
<label for="children" class="field-label">Number of Children</label> |
38 |
<label for="children" class="field prepend-icon"> |
39 |
<input type="number" id="children" name="children" class="gui-input" required="" placeholder="Number of children"> |
40 |
<span class="field-icon"><i class="fa fa-users"></i></span> |
41 |
</label>
|
42 |
</div>
|
43 |
</div>
|
44 |
|
45 |
<div class="frm-row"> |
46 |
<div class="section colm colm6"> |
47 |
<label for="checkin" class="field-label">Check-in Date</label> |
48 |
<label for="checkin" class="field prepend-icon"> |
49 |
<input type="text" id="checkin" name="checkin" class="gui-input" required="" placeholder="mm/dd/yyyy"> |
50 |
<span class="field-icon"><i class="fa fa-calendar"></i></span> |
51 |
</label>
|
52 |
</div>
|
53 |
|
54 |
<div class="section colm colm6"> |
55 |
<label for="checkout" class="field-label">Check-out Date</label> |
56 |
<label for="checkout" class="field prepend-icon"> |
57 |
<input type="text" id="checkout" name="checkout" class="gui-input" required="" placeholder="mm/dd/yyyy"> |
58 |
<span class="field-icon"><i class="fa fa-calendar"></i></span> |
59 |
</label>
|
60 |
</div>
|
61 |
</div>
|
62 |
|
63 |
<div class="spacer-t20 spacer-b30"> |
64 |
<div class="tagline"><span>Please answer these questions for a pleasant stay</span></div> |
65 |
</div>
|
66 |
|
67 |
<div class="frm-row"> |
68 |
<div class="option-group field"> |
69 |
|
70 |
<div class="section colm colm6"> |
71 |
<label class="switch"> |
72 |
<input type="checkbox" name="switch1" id="switch1" value="switch1"> |
73 |
<span class="switch-label" data-on="YES" data-off="NO"></span> |
74 |
<span>Will you be bringing a pet?</span> |
75 |
</label>
|
76 |
</div>
|
77 |
|
78 |
<div class="section colm colm6"> |
79 |
<label class="switch"> |
80 |
<input type="checkbox" name="switch2" id="switch2" value="switch2"> |
81 |
<span class="switch-label" data-on="YES" data-off="NO"></span> |
82 |
<span>Do you need us to pick you up?</span> |
83 |
</label>
|
84 |
</div>
|
85 |
|
86 |
</div>
|
87 |
</div>
|
88 |
|
89 |
|
90 |
|
91 |
<div class="section"> |
92 |
<label for="comment" class="field-label">Anything else we should know about?</label> |
93 |
<label for="comment" class="field prepend-icon"> |
94 |
<textarea class="gui-textarea" id="comment" name="comment" placeholder="Let us know about any special accommodation needs"></textarea> |
95 |
<span class="field-icon"><i class="fa fa-comments"></i></span> |
96 |
<span class="input-hint"> |
97 |
<strong>Please:</strong> Be as descriptive as possible |
98 |
</span>
|
99 |
</label>
|
100 |
</div>
|
Wenn das gesamte Markup in das Formular eingefügt wurde, sollte es nun wie das Bild unten aussehen.



Es mag jetzt wie eine Menge Code erscheinen, aber Sie können den größten Teil davon aus verschiedenen Startervorlagen kopieren. Danach müssen Sie einfach kleine Änderungen am Markup vornehmen, um es anzupassen. Sie können z. B. die Klasse der Font Awesome-Symbole einfach ändern, um Eingabefelder genauer zu repräsentieren.
Es ist wichtig, sich daran zu erinnern, dass Sie vorsichtig sein sollten, wenn Sie einige Attribute der Formularelemente ändern, da sich dies auf das allgemeine Erscheinungsbild oder Verhalten des Formulars auswirkt. Sie können z. B. die Breite verschiedener Elemente ändern, indem Sie die colm
-Klassen ändern. Wenn zwei Eingabeelemente in einer Zeile die Klassen colm8
und colm4
aufweisen. Ihre Breite würde im Verhältnis 2:1 stehen. Wenn sich die Ziffern nicht zu 12 addieren, sehen Sie auch in dieser Zeile einen Leerraum.
Wenn Sie den Wert des name
-Attributs eines Feldes auf dem Front-End ändern, stellen Sie sicher, dass Sie die entsprechenden Werte in den PHP-Dateien auf Ihrem Back-End ändern. Auf diese Weise verlieren Sie keine Formulardaten, die von Benutzern ausgefüllt werden.
Hinzufügen der Validierung zu unserem Buchungsformular
Das Smart Forms-Framework basiert auf Core-jQuery und vielen anderen jQuery-bezogenen Plugins, um Ihnen verschiedene Funktionen wie eine Monats- und Zeitauswahl oder die Möglichkeit zum Ziehen und Ablegen von Dateien zu bieten. Es gibt insgesamt 22 verschiedene JavaScript-Dateien, die Sie verwenden können, um die Funktionalität des Formulars zu verbessern.
Stellen Sie sicher, dass Sie nur die Dateien einschließen, die für das Funktionieren des Formulars erforderlich sind. Die Funktion jeder dieser Dateien wird in der Dokumentation erwähnt. In unserem Fall müssen wir die Kerndatei jQuery, die jQuery-UI-Datei und Formularvalidierungsdateien einschließen.
Sie können einfach den folgenden Code zu Ihrer Webseite hinzufügen, um alle JavaScript-Dateien einzuschließen. Sie können es entweder im Head des Dokuments oder kurz vor dem Ende des Bodys platzieren.
1 |
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> |
2 |
<script type="text/javascript" src="js/jquery-ui-custom.min.js"></script> |
3 |
<script type="text/javascript" src="js/jquery.validate.min.js"></script> |
4 |
<script type="text/javascript" src="js/additional-methods.min.js"></script> |
Nachdem Sie die Dateien hinzugefügt haben, müssen Sie Code hinzufügen, der den Validierungsprozess beginnt oder der Formularbenutzeroberfläche weitere Elemente wie eine Datumsbereichsauswahl hinzufügen kann. Hier ist der Code, den Sie hinzufügen müssen.
1 |
<script type="text/javascript"> |
2 |
$("#booking-form").validate(); |
3 |
|
4 |
$("#checkin").datepicker({ |
5 |
defaultDate: "+1w", |
6 |
changeMonth: false, |
7 |
numberOfMonths: 1, |
8 |
prevText: '<i class="fa fa-chevron-left"></i>', |
9 |
nextText: '<i class="fa fa-chevron-right"></i>', |
10 |
onClose: function( selectedDate ) { |
11 |
$( "#checkout" ).datepicker( "option", "minDate", selectedDate ); |
12 |
}
|
13 |
});
|
14 |
|
15 |
$("#checkout").datepicker({ |
16 |
defaultDate: "+1w", |
17 |
changeMonth: false, |
18 |
numberOfMonths: 1, |
19 |
prevText: '<i class="fa fa-chevron-left"></i>', |
20 |
nextText: '<i class="fa fa-chevron-right"></i>', |
21 |
onClose: function( selectedDate ) { |
22 |
$( "#checkin" ).datepicker( "option", "maxDate", selectedDate ); |
23 |
}
|
24 |
});
|
25 |
</script>
|
Sie müssen booking-form
durch die ID ersetzen, die Sie für Ihr Formular festgelegt haben, und es beginnt automatisch mit der Validierung der Felder. Die folgende Abbildung zeigt, wie die Fehlermeldungen standardmäßig angezeigt werden, nachdem Sie mit der Validierung begonnen haben.



Sie können beim Initialisieren der Datumsauswahl einige Optionen übergeben. Sie bestimmen die Benutzeroberfläche des Kalenders, z. B. die Anzahl der anzuzeigenden Monate oder das Datum, ab dem die Kalender angezeigt werden sollen. Wenn Sie z. B. defaultDate
auf +100w
setzen, werden die Kalender 100 Wochen in der Zukunft geöffnet.
Eine weitere Sache, die es wert ist, bemerkt zu werden, ist, dass der Eincheckkalender, nachdem Sie ein Datum ausgewählt haben, das Mindestdatum für den Auscheckkalender als das ausgewählte Datum festlegt. Dies geschieht durch die Rückruffunktion, die an das onClose
-Ereignis angefügt ist. Der Auscheckkalender tut etwas Ähnliches, legt jedoch das maximale Datum für den Eincheckkalender fest.



Abschließende Gedanken
In diesem Tutorial haben wir gelernt, wie man ein Buchungsformular mit dem Smart Forms-Skript erstellt, das auf CodeCanyon verfügbar ist. Während des Prozesses haben wir einige Grundlagen abgedeckt, um schnell loszulegen und eigene einzigartige Formulare zu erstellen. Wie Sie sehen können, ist es mit Smart Forms sehr einfach, schön aussehende Formulare mit Eingabevalidierung und anderen Verbesserungen zu erstellen.
Mit dem Smart Forms-Framework können Sie viel mehr als nur Buchungsformulare erstellen. Der Prozess des Erstellens des Markups und hinzufügen von JavaScript-Funktionen wird ähnlich bleiben, wie wir hier behandelt haben. Wenn Sie einmal nicht weiterkommen, hilft Ihnen die ausführliche Dokumentation weiter. Sie erhalten außerdem sechs Monate lang Zugang zu kostenlosem Support, so dass es sehr einfach ist, herauszufinden, wie man ein Formular zum Laufen bringt.
Mein Rat wäre, dass Sie zunächst kleine Änderungen an den in der Download-Datei bereitgestellten Startvorlagen vornehmen und dann beginnen, benutzerdefinierte Formulare von Grund auf neu zu erstellen.
- JavaScriptErstellen eines JavaScript-Kontaktformulars mit dem Smart Forms FrameworkMonty Shokeen
- JavaScriptBeste JavaScript-Formen 2019Monty Shokeen
- PHPVergleich der 5 besten PHP Form BuilderNona Blackman
- JavaScriptEinfache Formularvalidierung mit jQueryMonty Shokeen
- JavaScriptErstellen von JavaScript- und HTML5-Formularen kostenlosMonty Shokeen