Wiele razy twórcy stron internetowych muszą zebrać dużą ilość danych, które użytkownik musi wprowadzić, dlatego bardzo przydatne jest oddzielenie danych według sekcji lub kategorii na różnych ekranach lub krokach. Sposób na tworzenie sesji lub ekranów w krokach, każdy formularz w każdej sekcji prześle wprowadzone dane do następnego formularza, a to musi zachować wartości w jeden sposób i może przenosić je z jednej strony na drugą.
Aby zachować trwałość danych pomiędzy stronami możemy wykorzystać sesje PHP lub tymczasową tabelę bazy danych, w której możemy zapisać dane, które przekazujemy ze strony na stronę. A na koniec zapisujemy zebrane dane i usuwamy tymczasowe.
W tym samouczku pokażemy jak stworzyć wielostronicowy formularz za pomocą skryptu PHP. Zobaczymy też, jak uniknąć błędów między formularzami.
Sesje PHP wykorzystamy do przechowywania wartości pól każdego formularza.
Następnie stworzymy bazę danych o nazwie firma, a następnie tabelę kandydatów.
CREATE DATABASE `firma` CREATE TABLE IF NOT EXISTS` kandydaci` (`id` int (10) NOT NULL,` name` varchar (255) NOT NULL, `email` varchar (255) NOT NULL, ` address` varchar (50 ) DEFAULT NULL, `telefon` varchar (50) DEFAULT NULL,` mobile` varchar (50) DEFAULT NULL, `education` int (11) DEFAULT NULL,` post` int (11) DEFAULT NULL, `experience` int (11 ) DEFAULT NULL, tekst `opisu`) ENGINE = InnoDB AUTO_INCREMENT = 1 DOMYŚLNY ZESTAW ZNAKÓW = latin1;Gdy mamy formularze z dużą ilością danych, użytkownik nie będzie chciał wypełniać formularza z więcej niż 10 polami, dlatego warto zakryć formularz na kilku stronach.
Może to ułatwić użytkownikowi śledzenie, na przykład możemy podzielić dane na oddzielne sekcje, w oparciu o zakres lub kategorie informacji, osobno dane osobowe, informacje o kliencie, dane naukowe lub zawodowe, a także gusta czy preferencje, widzimy to również bardzo często w realizacji zakupów przed danymi płatności w koszyku, gdzie dane rozliczeniowe, dane do wysyłki i dane produktu są oddzielone.
Jednym z wyzwań, jakie wynikają z dzielenia formularza na wiele stron, jest przekazywanie danych z jednej strony na drugą, ponieważ w końcowym punkcie formularza mamy wszystkie potrzebne dane gotowe do przetworzenia. Rozważymy dwie metody, aby to zrobić: zmienne sesji i ukryte pola wejściowe.
Sesja ma więc charakter semipermanentny, pozwala stworzyć pewną trwałość i może służyć do przekazywania zmiennych przez różne strony, na których odwiedzający lądują podczas wizyty na stronie.
Następnie stworzymy pierwszy formularz, który będzie zawierał kilka pól:
Wiele formularzy PHPDodamy również arkusze stylów, aby nadać naszej formie bardziej elegancki wygląd, dlatego tworzymy plik style.css, po zastosowaniu będzie wyglądać następująco.Formularz 1
Imię i nazwisko: E-mail: Adres: Telefon: Telefon komórkowy:
div.container {szerokość: 960px; wysokość: 550px; margines: 50px auto; } div.main {szerokość: 100%; margines górny: 35px; pływak: lewy; obramowanie: 2px solid #8fc400; dopełnienie: 0px 50px 20px; rodzina czcionek: Arial, Helvetica Neue, Helvetica, bezszeryfowa; } form {margin-top: 20px} .estilotextarea {szerokość: 100%; wysokość: 100px; obramowanie: 1px solid # 999; } h2 {kolor-tła: tło: # 8fc400; tło: -moz-linear-gradient (góra, # 8fc400 0%, # 8fc400 100%); tło: -webkit-linear-gradient (góra, # 8fc400 0%, # 8fc400 100%); tło: gradient liniowy (do dołu, # 8fc400 0%, # 8fc400 100%); filtr: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); wypełnienie: 32px; margines: 0 -50px; text-align: center;} b {font-size: 18px; Blok wyświetlacza; kolor: # 555;} etykieta {kolor: # 464646; rozmiar czcionki: 14px; font-weight: bold;} input [type = text], input [type = email] {width: 96%; wysokość: 25px; wypełnienie: 5px; margines górny: 5px; margines-dolny: 15px; } wybierz {margin-bottom: 15px; margines górny: 5px; szerokość: 100%; wysokość: 35px; font-size: 12px;} input [typ = prześlij], input [typ = reset] {padding: 10px; tło: gradient liniowy (# 058eb5 5%, # 045066 100%); obramowanie: 1px stałe # 058eb5; kolor: # f7f7f7; kursor: wskaźnik; szerokość: 20%; promień obramowania: 2px; margines-dolny: 15px; grubość czcionki: pogrubiona; font-size: 16px;} input [type = submit]: hover, input [type = reset]: hover {background: linear-gradient (# 045066 5%, # 058eb5 100%); } .message {obramowanie: 1px solid; margines: 10px 0px; padding: 15px 10px 15px 10px; powtarzanie w tle: bez powtórzeń; pozycja w tle: centrum 10px; wyrównanie tekstu: środek; kolor: # 4F8A10; szerokość: 100%; kolor tła: # DFF2BF; }Dodałem wymaganą właściwość do każdego pola, ten wymagany atrybut jest atrybutem logicznym, który wskazuje, czy pole jest wymagane, czy nie, prawda czy fałsz.
Jeśli jest obecny, określa, że to pole wejściowe nie może być puste i musi zostać wypełnione przed przesłaniem formularza. Wymagany atrybut działa z następującymi typami danych wejściowych HTML5: tekst, e-mail, hasło, pola wyboru, radio i plik.
Wypełniając dane z pierwszego formularza wysyłamy pocztą na drugi formularz o nazwie formularz2.php którego kod jest następujący.
$ wartość) {$ _SESSION ['sessionform1'] [$ klucz] = $ wartość; }?> var13 -> PHP Wiele formularzyFormularz 2
Poziom wykształcenia: ---- Wybierz ---- Politechnika Inne Obowiązujące stanowisko: * ---- Wybierz ---- Administrator serwera Programista Projektant Doświadczenie zawodowe: * ---- Wybierz ---- Brak
Następnie wyślemy do formularza, w którym zapiszemy dane, w tym samouczku pokażemy dane z poprzednich sesji, aby zobaczyć, jakie dane wysłał każdy formularz.
$ wartość) {$ _SESSION ['sessionform2'] [$ klucz] = $ wartość; } wyrzucił 'Dane formularza 1'; $sessionform1 = $_SESSION ['sessionform1']; wyrzucił ''; print_r ($ sessionform1); wyrzucił ''; wyrzucił 'Dane formularza 2'; $sessionform2 = $_SESSION ['sessionform2']; wyrzucił ''; print_r ($ sessionform2); wyrzucił ''; ekstrakt ($ _ SESSION ['sessionform1']); $ połączenie = mysql_connect ("localhost", "root", ""); $db = mysql_select_db („firma”, połączenie $); $ sql = "wstaw do klientów (imię i nazwisko, e-mail, adres, telefon, telefon komórkowy, wykształcenie, stanowisko, doświadczenie, opis)"; $ sql. = "wartości ('$ nazwa', '$ e-mail', '$ adres',' $ telefon ',' $ mobile',' $ edukacja ',' $ pozycja ',' $ doświadczenie ',' $ opis ') "; $ zapytanie = mysql_query ($ sql, $ połączenie); ?> var13 -> PHP Wiele form<? if ($ zapytanie) {echo 'Zakończyłeś proces i zapisałeś dane
'; } jeszcze {echo 'Dane nie zostały zapisane
'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sessionform2']); ?> zm13 ->
Możemy więc dodać ilość potrzebnych nam formularzy i w każdym formularzu zapiszemy dane w sesji, a następnie zapiszemy wszystkie sesje w bazie danych, ale też nie pozwala to na powrót do poprzedniego formularza, ponieważ znając numer kroku lub formularz Będziemy mogli dowiedzieć się, która sesja zawiera dane tego formularza i przywrócić dane.
Ten sposób tworzenia Wielostronicowy formularz pozwala nam lepiej organizować informacje, gdy potrzebujemy zebrać dużo danych
Wiele formularzy jest obecnie częścią praktycznie każdej aplikacji internetowej. W dużych serwisach z dużymi ilościami danych są głównym sposobem na otrzymywanie informacji od użytkowników korzystających z aplikacji. W zależności od sekwencji, którą musimy zaimplementować po stronie klienta dla logiki aplikacji, nie powinniśmy przekraczać nas nie więcej niż 10 polami, ale użytkownik się męczy i porzuca, skrypt musi mieć również włączone wszystkie niezbędne zabezpieczenia, ponieważ jesteśmy za pomocą sesji i dane mogą zostać przechwycone.
Prawidłowa metoda do użycia unikanie problemów z bezpieczeństwem polega na hermetyzacji przetwarzania danych po stronie serwera za pomocą pHp.
Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt