Många gånger måste webbplatsutvecklare samla in en stor mängd data som användaren måste ange, för det är mycket användbart att separera data efter sektioner eller kategorier i olika skärmar eller steg. Ett sätt att skapa sessioner eller skärmar i steg, varje formulär i varje avsnitt skickar data som matas in till nästa formulär och detta måste behålla värdena på ett sätt och kan överföra dem från en sida till en annan.
För att upprätthålla beständigheten av data mellan sidor kan vi använda PHP -sessioner eller en tillfällig databastabell där vi kan spara data som vi skickar från sida till sida. Och i slutet sparar vi den insamlade informationen och raderar den tillfälliga.
I denna handledning kommer vi att visa hur man skapar ett flersidigt formulär med PHP-skript. Vi kommer också att se hur man undviker fel mellan formulärerna.
Vi kommer att använda PHP -sessioner för att lagra värdena för fälten i varje formulär.
Därefter ska vi skapa en databas som heter företag och sedan en tabell med sökande.
SKAPA DATABAS `företag` SKAPA TABELL OM INTE FÖRESKRIFTERAR` (` 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 formulär med mycket data kommer användaren inte att vilja fylla i ett formulär med mer än 10 fält, så det är en bra idé att täcka formuläret på flera sidor.
Detta kan göra det lättare för användaren att följa, till exempel kan vi dela upp data i separata avsnitt, baserat på omfattningen eller kategorierna av information, separat personlig information, kundinformation, din akademiska eller arbetsdata, liksom din smak eller preferenser, ser vi det också mycket i genomförandet av köp före betalningsuppgif.webpterna i en kundvagn, där faktureringsdata, leveransdata och produktdata separeras.
En av utmaningarna som uppstår genom att dela formuläret på flera sidor är att överföra data från en sida till en annan, eftersom vi vid slutet av formuläret har alla nödvändiga data redo för behandling. Vi kommer att överväga två metoder för att göra detta: sessionsvariabler och dolda inmatningsfält.
Därför har sessionen en semi-permanent karaktär, tillåter oss att skapa en viss uthållighet och kan användas för att skicka variabler till olika sidor där besökarna landar under ett besök på webbplatsen.
Vi skapar sedan det första formuläret som innehåller några fält:
PHP Multiple FormVi kommer också att lägga till formatmallarna för att ge en mer elegant design till vår form, därför skapar vi en fil styles.css, efter applicering kommer det att vara följande.Blankett 1
Namn: E -post: Adress: Telefon: Mobiltelefon:
div.container {bredd: 960px; höjd: 550px; marginal: 50px auto; } div.main {bredd: 100%; marginal-topp: 35px; flyta till vänster; kant: 2px solid # 8fc400; vaddering: 0px 50px 20px; font-family: Arial, Helvetica Neue, Helvetica, sans-serif; } formulär {margin-top: 20px} .estilotextarea {bredd: 100%; höjd: 100px; kant: 1px solid # 999; } h2 {bakgrund-färg: bakgrund: # 8fc400; bakgrund: -moz-linjär-gradient (topp, # 8fc400 0%, # 8fc400 100%); bakgrund: -webkit-linjär-gradient (topp, # 8fc400 0%, # 8fc400 100%); bakgrund: linjär gradient (till botten, # 8fc400 0%, # 8fc400 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); vaddering: 32px; marginal: 0 -50px; text-align: center;} b {font-size: 18px; display: block; färg: # 555;} etikett {color: # 464646; typsnitt: 14px; font-weight: bold;} input [type = text], input [type = email] {width: 96%; höjd: 25px; vaddering: 5px; marginal-topp: 5px; marginal-botten: 15px; } välj {margin-bottom: 15px; marginal-topp: 5px; bredd: 100%; höjd: 35px; font-size: 12px;} input [type = submit], input [type = reset] {padding: 10px; bakgrund: linjär gradient ( # 058eb5 5%, # 045066 100%); kant: 1px solid # 058eb5; färg: # f7f7f7; markör: pekare; bredd: 20%; gränsradie: 2px; marginal-botten: 15px; font-weight: fet; font-size: 16px;} input [type = submit]: hover, input [type = reset]: hover {background: linear-gradient ( # 045066 5%, # 058eb5 100%); } .meddelande {border: 1px solid; marginal: 10px 0px; vaddering: 15px 10px 15px 10px; bakgrund-upprepa: ingen upprepning; bakgrundsposition: 10px center; text-align: center; färg: # 4F8A10; bredd: 100%; bakgrundsfärg: # DFF2BF; }Jag har lagt till den obligatoriska egenskapen i varje fält, detta obligatoriska attribut är ett booleskt attribut som anger om fältet är obligatoriskt eller inte, sant eller falskt.
När den är närvarande anger den att det inmatningsfältet inte får vara tomt och måste fyllas i innan formuläret skickas. Det erforderliga attributet fungerar med följande html5 -inmatningstyper: text, e -post, lösenord, kryssrutor, radio och fil.
När vi fyller i uppgif.webpterna i det första formuläret skickar vi via post till det andra formuläret som kallas form2.php vars kod är följande.
$ värde) {$ _SESSION ['sesionform1'] [$ key] = $ värde; }?> var13 -> PHP Flera formerBlankett 2
Utbildningsnivå: ---- Välj ---- Teknisk universitet Annan tillämplig position: * ---- Välj ---- Serveradministratör Programmerare Arbetserfarenhet: * ---- Välj ---- Ingen
Därefter skickar vi till ett formulär där vi kommer att spara data, för denna handledning kommer vi att visa data från sessionerna innan, bara för att se vilken data varje formulär skickade.
$ värde) {$ _SESSION ['sesionform2'] [$ key] = $ värde; } kastade ut 'Form1 -data'; $ sesionform1 = $ _ SESSION ['sesionform1']; kastade ut ''; print_r ($ sesionform1); kastade ut ''; kastade ut 'Form2 -data'; $ sesionform2 = $ _ SESSION ['sesionform2']; kastade ut ''; print_r ($ sesionform2); kastade ut ''; extrakt ($ _ SESSION ['sesionform1']); $ connection = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("företag", $ anslutning); $ sql = "infoga i klienter (namn, e -postadress, adress, telefon, mobil, utbildning, position, erfarenhet, beskrivning)"; $ sql. = "värden ('$ name', '$ email', '$ address', '$ phone', '$ mobile', '$ education', '$ position', '$ experience', ' $ description ') "; $ fråga = mysql_query ($ sql, $ anslutning); ?> var13 -> PHP Flera former<? if ($ query) {echo 'Du har slutfört processen och sparat data
'; } annat {echo 'Data har inte sparats
'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sesionform2']); ?> var13 ->
Så vi kan lägga till mängden formulär vi behöver och i varje formulär kommer vi att spara data i en session och sedan spara alla sessioner i en databas, men det tillåter inte heller att gå tillbaka till ett tidigare formulär eftersom vi känner till stegnumret eller formulär Vi kommer att kunna veta vilken session som innehåller data från det formuläret och återställa data.
Detta sätt att skapa en Flersidigt formulär gör att vi kan organisera information bättre när vi behöver samla in mycket data
Flera formulär är en del av praktiskt taget alla webbapplikationer idag. På stora webbplatser med stora datamängder är de den viktigaste metoden för att ta emot information från de användare som använder programmet. Beroende på sekvensen som vi måste implementera på klientsidan för applikationslogiken bör vi inte överskrida oss med högst 10 fält men användaren blir trött och överger det, skriptet måste också ha all nödvändig säkerhet införlivad eftersom vi är med hjälp av sessioner och data kan fångas upp.
Rätt metod att använda för att undvika säkerhetsproblem är att kapsla in databehandling på serversidan med pHp.
Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng