Mod de a crea un formular cu mai multe pagini folosind script PHP

De multe ori, dezvoltatorii de site-uri web trebuie să colecteze o cantitate mare de date pe care utilizatorul trebuie să le introducă, pentru aceasta este foarte util să separați datele pe secțiuni sau categorii în diferite ecrane sau pași. O modalitate de a crea sesiuni sau ecrane în pași, fiecare formular din fiecare secțiune va trimite datele introduse la formularul următor și acesta trebuie să păstreze valorile într-un fel și să le poată transfera de la o pagină la alta.

Pentru a menține persistența datelor între pagini putem folosi sesiuni PHP sau un tabel de baze de date temporare unde putem salva datele pe care le transmitem de la pagină la pagină. Și la final salvăm datele colectate și le ștergem pe cele temporare.

În acest tutorial vom arăta cum să creați un formular cu mai multe pagini folosind script PHP. Vom vedea, de asemenea, cum să evităm erorile între formulare.

Vom folosi sesiuni PHP pentru a stoca valorile câmpurilor fiecărui formular.

În continuare vom crea o bază de date numită companie și apoi un tabel de solicitanți.

 CREAȚI BAZA DE DATE „companie` CREAȚI TABELUL DACĂ NU EXISTĂ„ solicitanții ”(„ id ”int (10) NU NULL,„ nume ”varchar (255) NU NUL,„ e-mail ”varchar (255) NU NUL,„ adresă ”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, textul „descriere`) MOTOR = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = latin1;
Când avem formulare cu multe date, utilizatorul nu va dori să completeze un formular cu mai mult de 10 câmpuri, deci este o idee bună să acoperiți formularul pe mai multe pagini.

Acest lucru poate facilita urmărirea utilizatorului, de exemplu, putem împărți datele în secțiuni separate, pe baza domeniului sau categoriilor de informații, separat informații personale, informații despre clienți, datele dvs. academice sau de serviciu, precum și gusturile dvs. sau preferințe, o vedem mult și în finalizarea achizițiilor înainte de datele de plată într-un coș de cumpărături, unde datele de facturare, datele de expediere și datele despre produse sunt separate.

Una dintre provocările care decurg din împărțirea formularului în mai multe pagini este transmiterea datelor de la o pagină la alta, deoarece la punctul final al formularului avem toate datele necesare pregătite pentru procesare. Vom lua în considerare două metode pentru a face acest lucru: variabile de sesiune și câmpuri de intrare ascunse.

Prin urmare, sesiunea are un caracter semi-permanent, ne permite să creăm o anumită persistență și poate fi utilizată pentru a transmite variabile în diferite pagini în care vizitatorii aterizează în timpul unei vizite pe site.

Vom crea apoi primul formular care va conține câteva câmpuri:

 Formular multiplu PHP

Formularul 1

Nume: Email: Adresă: Telefon: Telefon mobil:
De asemenea, vom adăuga foile de stil pentru a da un design mai elegant formei noastre, prin urmare creăm un fișier stiluri.css, după aplicare va fi după cum urmează.

 div.container {width: 960px; înălțime: 550px; marja: 50px auto; } div.main {width: 100%; marginea de sus: 35 px; plutește la stânga; chenar: 2px solid # 8fc400; umplutură: 0px 50px 20px; font-family: Arial, Helvetica Neue, Helvetica, sans-serif; } form {margin-top: 20px} .estilotextarea {width: 100%; height: 100px; border: 1px solid # 999; } h2 {background-color: background: # 8fc400; fundal: -moz-linear-gradient (sus, # 8fc400 0%, # 8fc400 100%); fundal: -webkit-linear-gradient (sus, # 8fc400 0%, # 8fc400 100%); fundal: gradient liniar (până jos, # 8fc400 0%, # 8fc400 100%); filtru: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); umplutură: 32 px; margine: 0 -50px; text-align: center;} b {font-size: 18px; display: bloc; culoare: # 555;} etichetă {color: # 464646; dimensiunea fontului: 14px; font-weight: bold;} input [type = text], input [type = email] {width: 96%; înălțime: 25 px; umplutură: 5 px; marginea de sus: 5 px; marginea-fund: 15 px; } selectați {margin-bottom: 15px; marginea de sus: 5 px; lățime: 100%; înălțime: 35px; font-size: 12px;} input [type = submit], input [type = reset] {padding: 10px; fundal: gradient liniar (# 058eb5 5%, # 045066 100%); chenar: 1px solid # 058eb5; culoare: # f7f7f7; cursor: pointer; lățime: 20%; raza chenarului: 2px; marginea-fund: 15 px; font-weight: bold; font-size: 16px;} input [type = submit]: hover, input [type = reset]: hover {background: linear-gradient (# 045066 5%, # 058eb5 100%); } .message {border: 1px solid; margine: 10px 0px; umplutură: 15px 10px 15px 10px; background-repeat: no-repeat; fundal-poziție: 10px centru; text-align: centru; culoare: # 4F8A10; lățime: 100%; culoare de fundal: # DFF2BF; }
Am adăugat proprietatea necesară fiecărui câmp, acest atribut necesar este un atribut boolean care indică dacă câmpul este obligatoriu sau nu, adevărat sau fals.
Când este prezent, specifică faptul că acel câmp de intrare nu poate fi gol și trebuie completat înainte de a trimite formularul. Atributul necesar funcționează cu următoarele tipuri de intrare html5: text, e-mail, parolă, casete de selectare, radio și fișier.

La completarea datelor primului formular, trimitem prin poștă la al doilea formular numit form2.php al cărui cod este următorul.

 $ valoare) {$ _SESSION ['sesionform1'] [$ cheie] = $ valoare; }?> var13 -> PHP Formular multiplu

Formularul 2

Nivel de educație: ---- Selectați ---- Universitatea tehnică Altă funcție aplicabilă: * ---- Selectați ---- Administrator server Programator Experiență de lucru: * ---- Selectați ---- Nici unul

Apoi vom trimite la un formular în care vom salva datele, pentru acest tutorial vom arăta datele sesiunilor anterioare, doar pentru a vedea ce date au trimis fiecare formular.

 $ valoare) {$ _SESSION ['sesionform2'] [$ cheie] = $ valoare; } aruncat 'Date Form1'; $ sesionform1 = $ _ SESSION ['sesionform1']; aruncat '
'; print_r ($ sesionform1); aruncat '
'; aruncat 'Date Form2'; $ sesionform2 = $ _ SESSION ['sesionform2']; aruncat '
'; print_r ($ sesionform2); aruncat '
'; extract ($ _ SESSION ['sesionform1']); $ connection = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("companie", $ conexiune); $ sql = "introduceți în clienți (nume, e-mail, adresă, telefon, telefon mobil, educație, poziție, experiență, descriere)"; $ sql. = "valori ('$ nume', '$ e-mail', '$ adresă', '$ telefon', '$ mobil', '$ educație', '$ poziție', '$ experiență', ' $ descriere ') "; $ interogare = mysql_query ($ sql, $ conexiune); ?> var13 -> PHP Formă multiplă<? if ($ interogare) {echo '

Ați terminat procesul și ați salvat datele

'; } else {echo '

Datele nu au fost salvate

'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sesionform2']); ?> var13 ->

Deci, putem adăuga cantitatea de formulare de care avem nevoie și, în fiecare formular, vom salva datele într-o sesiune și apoi vom salva toate sesiunile într-o bază de date, dar, de asemenea, nu permite revenirea la un formular anterior de când știm numărul pasului sau formular Vom putea ști care sesiune conține datele din formularul respectiv și le putem restabili.

Acest mod de a crea un Formularul cu mai multe pagini ne permite să organizăm mai bine informațiile atunci când trebuie să colectăm o mulțime de date

Formularele multiple fac parte din practic orice aplicație web de astăzi. Pe site-urile web mari, cu volume mari de date, acestea reprezintă principala metodă de a primi informații de la utilizatorii care folosesc aplicația. În funcție de secvența pe care trebuie să o implementăm pe partea clientului pentru logica aplicației, nu ar trebui să ne depășească cu cel mult 10 câmpuri, dar utilizatorul obosește și îl abandonează, scriptul trebuie să aibă, de asemenea, toată securitatea necesară încorporată, deoarece suntem folosind sesiuni și datele ar putea fi interceptate.

Metoda corectă de utilizat evitarea problemelor de securitate este încapsularea procesării datelor pe partea serverului folosind pHp.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave