Mange ganger må nettstedutviklere samle inn en stor mengde data som brukeren må legge inn, for dette er det veldig nyttig å skille dataene etter seksjoner eller kategorier i forskjellige skjermer eller trinn. En måte å lage økter eller skjermer på i trinn, hvert skjema i hver seksjon sender dataene som er lagt inn til neste skjema, og dette må beholde verdiene på en måte og kan overføre dem fra en side til en annen.
For å opprettholde dataene mellom sidene kan vi bruke PHP -økter eller en midlertidig databasetabell der vi kan lagre dataene vi sender fra side til side. Og til slutt lagrer vi de innsamlede dataene og sletter den midlertidige.
I denne opplæringen skal vi vise hvordan lage et flersidig skjema ved hjelp av PHP-skript. Vi vil også se hvordan du kan unngå feil mellom skjemaene.
Vi vil bruke PHP -økter til å lagre verdiene til feltene i hvert skjema.
Deretter skal vi lage en database som heter selskap og deretter en tabell med søkere.
OPPRETT DATABASE `selskap` OPRET TABLE IF NOT EXISTS` søkere` (` 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;Når vi har skjemaer med mye data, vil ikke brukeren ønsker å fylle ut et skjema med mer enn 10 felt, så det er en god idé å dekke skjemaet på flere sider.
Dette kan gjøre det lettere for brukeren å følge, for eksempel kan vi dele dataene i separate seksjoner, basert på omfanget eller kategoriene av informasjon, separat personlig informasjon, kundeinformasjon, dine akademiske eller arbeidsdata, så vel som din smak eller preferanser, ser vi det også mye i gjennomføringen av kjøp før betalingsdataene i en handlekurv, der faktureringsdata, forsendelsesdata og produktdata er atskilt.
En av utfordringene som oppstår ved å dele skjemaet på flere sider, er å overføre dataene fra en side til en annen, ettersom vi ved slutten av skjemaet har alle nødvendige data klare til behandling. Vi skal vurdere to metoder for å gjøre dette: sesjonsvariabler og skjulte inndatafelt.
Derfor har økten en semi-permanent karakter, slik at vi kan skape en viss utholdenhet og kan brukes til å sende variabler gjennom forskjellige sider der de besøkende lander under et besøk på nettstedet.
Vi lager deretter det første skjemaet som inneholder noen felt:
PHP Multiple FormVi vil også legge til stilarkene for å gi et mer elegant design til formen vår, derfor lager vi en fil styles.css, etter påføring vil det være som følger.Skjema 1
Navn: E -post: Adresse: Telefon: Mobiltelefon:
div. beholder {bredde: 960px; høyde: 550px; margin: 50px auto; } div.main {bredde: 100%; margin-top: 35px; flyte: venstre; kantlinje: 2px solid # 8fc400; polstring: 0px 50px 20px; font-family: Arial, Helvetica Neue, Helvetica, sans-serif; } skjema {margin-top: 20px} .estilotextarea {bredde: 100%; høyde: 100px; kant: 1px solid # 999; } h2 {bakgrunn-farge: bakgrunn: # 8fc400; bakgrunn: -moz-lineær-gradient (topp, # 8fc400 0%, # 8fc400 100%); bakgrunn: -webkit-lineær-gradient (topp, # 8fc400 0%, # 8fc400 100%); bakgrunn: lineær gradient (til bunn, # 8fc400 0%, # 8fc400 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); polstring: 32px; margin: 0 -50px; tekstjuster: senter;} b {skriftstørrelse: 18px; display: blokk; farge: # 555;} etikett {color: # 464646; skriftstørrelse: 14px; font-weight: bold;} input [type = text], input [type = email] {bredde: 96%; høyde: 25px; polstring: 5px; margin-top: 5px; margin-bunn: 15px; } velg {margin-bottom: 15px; margin-top: 5px; bredde: 100%; høyde: 35px; font-size: 12px;} input [type = submit], input [type = reset] {padding: 10px; bakgrunn: lineær gradient ( # 058eb5 5%, # 045066 100%); grense: 1px solid # 058eb5; farge: # f7f7f7; markør: peker; bredde: 20%; kant-radius: 2px; margin-bunn: 15px; font-weight: fet skrift; font-size: 16px;} input [type = submit]: svever, input [type = reset]: svever {bakgrunn: lineær-gradient ( # 045066 5%, # 058eb5 100%); } .melding {border: 1px solid; margin: 10px 0px; polstring: 15px 10px 15px 10px; bakgrunn-gjenta: nei-gjenta; bakgrunn-posisjon: 10px senter; tekstjustering: senter; farge: # 4F8A10; bredde: 100%; bakgrunnsfarge: # DFF2BF; }Jeg har lagt til den nødvendige egenskapen i hvert felt. Dette obligatoriske attributtet er et boolsk attributt som angir om feltet er obligatorisk eller ikke, sant eller usant.
Når den er tilstede, angir den at det inndatafeltet ikke må være tomt og må fylles ut før skjemaet sendes inn. Det nødvendige attributtet fungerer med følgende html5 -inngangstyper: tekst, e -post, passord, avmerkingsbokser, radio og fil.
Når vi fullfører dataene i det første skjemaet, sender vi via post til det andre skjemaet som kalles form2.php hvis kode er følgende.
$ verdi) {$ _SESSION ['sesionform1'] [$ key] = $ verdi; }?> var13 -> PHP Flere skjemaerSkjema 2
Utdanningsnivå: ---- Velg ---- Teknisk universitet Annen gjeldende posisjon: * ---- Velg ---- Serveradministrator Programmerer Designer Arbeidserfaring: * ---- Velg ---- Ingen
Deretter sender vi til et skjema hvor vi vil lagre dataene, for denne opplæringen vil vi vise dataene fra øktene før, bare for å se hvilke data hvert skjema sendte.
$ verdi) {$ _SESSION ['sesionform2'] [$ key] = $ verdi; } kastet ut 'Form1 -data'; $ sesionform1 = $ _ SESSION ['sesionform1']; kastet ut ''; print_r ($ sesionform1); kastet ut ''; kastet ut 'Form2 -data'; $ sesionform2 = $ _ SESSION ['sesionform2']; kastet ut ''; print_r ($ sesionform2); kastet ut ''; ekstrakt ($ _ SESSION ['sesionform1']); $ tilkobling = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("selskap", $ tilkobling); $ sql = "sett inn i klienter (navn, e -post, adresse, telefon, mobil, utdanning, posisjon, erfaring, beskrivelse)"; $ sql. = "values ('$ name', '$ email', '$ address', '$ phone', '$ mobile', '$ education', '$ position', '$ experience', ' $ description ') "; $ query = mysql_query ($ sql, $ tilkobling); ?> var13 -> PHP Flere skjemaer<? if ($ query) {echo 'Du har fullført prosessen og lagret dataene
'; } annet {ekko 'Dataene er ikke lagret
'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sesionform2']); ?> var13 ->
Så vi kan legge til mengden skjemaer vi trenger, og i hvert skjema lagrer vi dataene i en økt og deretter lagrer alle øktene i en database, men det tillater heller ikke å gå tilbake til et tidligere skjema siden vi kjenner trinnnummeret eller skjema Vi vil kunne vite hvilken økt som inneholder dataene i skjemaet og gjenopprette dataene.
Denne måten å lage en Flersidig skjema lar oss bedre organisere informasjon når vi trenger å samle inn mye data
Flere skjemaer er en del av praktisk talt alle webapplikasjoner i dag. På store nettsteder med store datamengder er de hovedmetoden for å motta informasjon fra brukerne som bruker programmet. Avhengig av sekvensen vi trenger å implementere på klientsiden for applikasjonslogikken, bør vi ikke overskride oss med ikke mer enn 10 felt, men brukeren blir sliten og forlater det, manuset må også ha all nødvendig sikkerhet innarbeidet siden vi er ved hjelp av økter og dataene kan bli fanget opp.
Riktig metode å bruke for å unngå sikkerhetsproblemer er innkapsling av databehandling på serversiden ved hjelp av pHp.
Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng