Mange gange skal webstedsudviklere indsamle en stor mængde data, som brugeren skal indtaste, for det er meget nyttigt at adskille dataene efter sektioner eller kategorier i forskellige skærme eller trin. En måde at oprette sessioner eller skærme i trin på, hver formular i hvert afsnit sender de indtastede data til den næste formular, og denne skal beholde værdierne på en måde og kan overføre dem fra en side til en anden.
For at opretholde persistensen af data mellem sider kan vi bruge PHP -sessioner eller en midlertidig databasetabel, hvor vi kan gemme de data, vi sender fra side til side. Og i slutningen gemmer vi de indsamlede data og sletter den midlertidige.
I denne vejledning vil vi vise hvordan man opretter en formular med flere sider ved hjælp af PHP-script. Vi vil også se, hvordan man undgår fejl mellem formularerne.
Vi vil bruge PHP -sessioner til at gemme værdierne for felterne i hver form.
Dernæst skal vi oprette en database kaldet virksomhed og derefter en tabel med ansøgere.
OPRET DATABASE `firma` OPRET TABEL IF NOT EXISTS` ansøgere` (` 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, `beskrivelse` tekst) MOTOR = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = latin1;Når vi har formularer med mange data, vil brugeren ikke udfylde en formular med mere end 10 felter, så det er en god idé at dække formularen på flere sider.
Dette kan gøre det lettere for brugeren at følge, f.eks. Kan vi opdele dataene i separate sektioner baseret på omfanget eller kategorierne af oplysninger, separat personlige oplysninger, kundeoplysninger, dine akademiske eller arbejdsdata samt din smag eller præferencer, ser vi det også meget ved gennemførelsen af køb før betalingsdataene i en indkøbsvogn, hvor faktureringsdata, forsendelsesdata og produktdata er adskilt.
En af de udfordringer, der opstår ved at opdele formularen på flere sider, er at videregive dataene fra en side til en anden, da vi ved slutpunktet i formularen har alle de nødvendige data klar til behandling. Vi vil overveje to metoder til at gøre dette: sessionsvariabler og skjulte inputfelter.
Derfor har sessionen en semi-permanent karakter, giver os mulighed for at skabe en vis vedholdenhed og kan bruges til at videregive variabler på forskellige sider, hvor de besøgende lander under et besøg på webstedet.
Vi opretter derefter den første formular, der indeholder nogle felter:
PHP flere formularerVi tilføjer også stilarkene for at give vores form et mere elegant design, derfor opretter vi en fil styles.css, efter påføring vil det være som følger.Skema 1
Navn: E -mail: Adresse: Telefon: Mobiltelefon:
div.container {bredde: 960px; højde: 550px; margen: 50px auto; } div.main {bredde: 100%; margin-top: 35px; flyde: venstre; kant: 2px solid # 8fc400; polstring: 0px 50px 20px; font-familie: Arial, Helvetica Neue, Helvetica, sans-serif; } form {margin-top: 20px} .estilotextarea {bredde: 100%; højde: 100px; kant: 1px solid # 999; } h2 {baggrundsfarve: baggrund: # 8fc400; baggrund: -moz-lineær-gradient (top, # 8fc400 0%, # 8fc400 100%); baggrund: -webkit-lineær-gradient (top, # 8fc400 0%, # 8fc400 100%); baggrund: lineær-gradient (til bund, # 8fc400 0%, # 8fc400 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); polstring: 32px; margen: 0 -50px; tekstjuster: center;} b {font-size: 18px; display: blok; farve: # 555;} etiket {farve: # 464646; skrifttype: 14px; font-weight: bold;} input [type = tekst], input [type = email] {bredde: 96%; højde: 25px; polstring: 5px; margin-top: 5px; margin-bund: 15px; } vælg {margin-bottom: 15px; margin-top: 5px; bredde: 100%; højde: 35px; skrifttype: 12px;} input [type = indsend], input [type = nulstil] {polstring: 10px; baggrund: lineær-gradient ( # 058eb5 5%, # 045066 100%); kant: 1px solid # 058eb5; farve: # f7f7f7; markør: pointer; bredde: 20%; grænse-radius: 2px; margin-bund: 15px; skrifttype-vægt: fed; skriftstørrelse: 16px;} input [type = indsend]: svæver, input [type = nulstil]: svæver {baggrund: lineær-gradient ( # 045066 5%, # 058eb5 100%); } .meddelelse {grænse: 1px solid; margen: 10px 0px; polstring: 15px 10px 15px 10px; baggrund-gentag: ingen-gentagelse; baggrundsstilling: 10px center; tekstjustering: center; farve: # 4F8A10; bredde: 100%; baggrundsfarve: # DFF2BF; }Jeg har tilføjet den nødvendige egenskab til hvert felt, denne påkrævede attribut er en boolsk attribut, der angiver, om feltet er påkrævet eller ej, sandt eller forkert.
Når den er til stede, angiver den, at dette inputfelt ikke må være tomt og skal udfyldes, før formularen indsendes. Den påkrævede attribut fungerer med følgende html5 -indtastningstyper: tekst, e -mail, adgangskode, afkrydsningsfelter, radio og fil.
Når vi udfylder dataene i den første formular, sender vi via post til den anden formular, der kaldes form2.php hvis kode er følgende.
$ værdi) {$ _SESSION ['sesionform1'] [$ key] = $ værdi; }?> var13 -> PHP Flere formularerSkema 2
Uddannelsesniveau: ---- Vælg ---- Teknisk universitet Anden gældende position: * ---- Vælg ---- Serveradministrator Programmer Designer Arbejdserfaring: * ---- Vælg ---- Ingen
Dernæst sender vi til en formular, hvor vi vil gemme dataene, til denne vejledning viser vi dataene fra sessionerne før, bare for at se hvilke data hver formular sendte.
$ værdi) {$ _SESSION ['sesionform2'] [$ key] = $ værdi; } smed ud 'Form1 -data'; $ sesionform1 = $ _ SESSION ['sesionform1']; smed ud ''; print_r ($ sesionform1); smed ud ''; smed ud 'Form2 -data'; $ sesionform2 = $ _ SESSION ['sesionform2']; smed ud ''; print_r ($ sesionform2); smed ud ''; ekstrakt ($ _ SESSION ['sesionform1']); $ forbindelse = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("firma", $ forbindelse); $ sql = "indsæt i klienter (navn, e -mail, adresse, telefon, mobil, uddannelse, position, erfaring, beskrivelse)"; $ sql. = "værdier ('$ name', '$ email', '$ address', '$ phone', '$ mobile', '$ education', '$ position', '$ experience', ' $ description ') "; $ forespørgsel = mysql_query ($ sql, $ forbindelse); ?> var13 -> PHP Flere formularer<? hvis ($ forespørgsel) {echo 'Du har afsluttet processen og gemt dataene
'; } andet {ekko 'Dataene er ikke gemt
'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sesionform2']); ?> var13 ->
Så vi kan tilføje mængden af formularer, vi har brug for, og i hver formular gemmer vi dataene i en session og derefter gemmer alle sessionerne i en database, men det tillader heller ikke at gå tilbage til en tidligere formular, siden vi kender trinnummeret eller formular Vi vil kunne vide, hvilken session der indeholder dataene i denne formular og gendanne dataene.
Denne måde at skabe en Formular med flere sider giver os mulighed for bedre at organisere oplysninger, når vi skal indsamle en masse data
Flere formularer er en del af stort set enhver webapplikation i dag. På store websteder med store datamængder er de den vigtigste metode til at modtage oplysninger fra de brugere, der bruger applikationen. Afhængigt af den rækkefølge, vi skal implementere på klientsiden til applikationslogikken, bør vi ikke overskride os med ikke mere end 10 felter, men brugeren bliver træt og opgiver det, scriptet skal også have al den nødvendige sikkerhed indarbejdet, da vi er ved hjælp af sessioner, og dataene kunne opsnappes.
Den korrekte metode at bruge til undgåelse af sikkerhedsproblemer er indkapsling af databehandling på serversiden ved hjælp af pHp.
Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt