Manier om formulier met meerdere pagina's te maken met behulp van PHP-script

Inhoudsopgave

Vaak moeten websiteontwikkelaars een grote hoeveelheid gegevens verzamelen die de gebruiker moet invoeren, hiervoor is het erg handig om de gegevens te scheiden in secties of categorieën in verschillende schermen of stappen. Een manier om in stappen sessies of schermen aan te maken, elk formulier in elke sectie stuurt de ingevoerde gegevens naar het volgende formulier en dit moet de waarden op de ene manier behouden en ze van de ene pagina naar de andere kunnen overbrengen.

Om de persistentie van gegevens tussen pagina's te behouden, kunnen we PHP-sessies of een tijdelijke databasetabel gebruiken waarin we de gegevens kunnen opslaan die we van pagina naar pagina doorgeven. En aan het einde bewaren we de verzamelde gegevens en verwijderen we de tijdelijke.

In deze tutorial gaan we laten zien hoe een formulier met meerdere pagina's te maken met behulp van PHP-script. We zullen ook zien hoe we fouten tussen de formulieren kunnen vermijden.

We zullen PHP-sessies gebruiken om de waarden van de velden van elk formulier op te slaan.

Vervolgens gaan we een database maken met de naam bedrijf en vervolgens een tabel met sollicitanten.

 CREER DATABASE `bedrijf` MAAK TABEL INDIEN NIET BESTAAT` sollicitanten` (`id` int (10) NOT NULL,` name` varchar (255) NOT NULL, `email` varchar (255) NOT NULL,` 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 ) STANDAARD NULL, tekst 'beschrijving') ENGINE = InnoDB AUTO_INCREMENT = 1 STANDAARD CHARSET = latin1;
Als we formulieren hebben met veel gegevens, zal de gebruiker een formulier met meer dan 10 velden niet willen invullen, dus het is een goed idee om het formulier op meerdere pagina's te behandelen.

Dit kan het voor de gebruiker gemakkelijker maken om te volgen, we kunnen de gegevens bijvoorbeeld in afzonderlijke secties verdelen, op basis van de reikwijdte of categorieën van informatie, afzonderlijke persoonlijke informatie, klantinformatie, uw academische of werkgegevens, evenals uw smaak of voorkeuren, we zien het ook veel bij het afronden van aankopen voordat de betalingsgegevens in een winkelwagentje komen, waar factuurgegevens, verzendgegevens en productgegevens worden gescheiden.

Een van de uitdagingen die zich voordoen bij het verdelen van het formulier over meerdere pagina's, is het doorgeven van de gegevens van de ene pagina naar de andere, aangezien we aan het eindpunt van het formulier alle benodigde gegevens klaar hebben voor verwerking. We gaan twee methoden bekijken om dit te doen: sessievariabelen en verborgen invoervelden.

Daarom heeft de sessie een semi-permanent karakter, kunnen we wat persistentie creëren en kan het worden gebruikt om variabelen door te geven over verschillende pagina's waarin de bezoekers terechtkomen tijdens een bezoek aan de site.

We zullen dan het eerste formulier maken dat enkele velden zal bevatten:

 PHP meerdere formulieren

Formulier 1

Naam: E-mail: Adres: Telefoon: Mobiele telefoon:
We zullen ook de stijlbladen toevoegen om ons formulier een eleganter ontwerp te geven, daarom maken we een bestand stijlen.css, na toegepast zal het als volgt zijn.

 div.container {breedte: 960px; hoogte: 550px; marge: 50px automatisch; } div.main {breedte: 100%; marge-top: 35px; zweven: links; rand: 2px effen # 8fc400; opvulling: 0px 50px 20px; font-familie: Arial, Helvetica Neue, Helvetica, schreefloos; } form {margin-top: 20px} .estilotextarea {width: 100%; height: 100px; border: 1px solid # 999; } h2 {achtergrondkleur: achtergrond: # 8fc400; achtergrond: -moz-lineair verloop (top, # 8fc400 0%, # 8fc400 100%); achtergrond: -webkit-lineair verloop (top, # 8fc400 0%, # 8fc400 100%); achtergrond: lineair verloop (naar beneden, # 8fc400 0%, # 8fc400 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); opvulling: 32px; marge: 0 -50px; tekstuitlijning: midden;} b {lettergrootte: 18px; weergave: blok; kleur: # 555;} label {kleur: # 464646; lettergrootte: 14px; font-weight: vet;} invoer [type = tekst], invoer [type = e-mail] {breedte: 96%; hoogte: 25px; opvulling: 5px; marge-top: 5px; marge-onder: 15px; } selecteer {marge-bodem: 15px; marge-top: 5px; breedte: 100%; hoogte: 35px; lettergrootte: 12px;} invoer [type = indienen], invoer [type = reset] {padding: 10px; achtergrond: lineair verloop (# 058eb5 5%, # 045066 100%); rand: 1px effen # 058eb5; kleur: # f7f7f7; cursor: aanwijzer; breedte: 20%; grensradius: 2px; marge-onder: 15px; lettergewicht: vet; font-size: 16px;} input [type = submit]: hover, input [type = reset]: hover {background: linear-gradient (# 045066 5%, # 058eb5 100%); } .message {rand: 1px solide; marge: 10px 0px; opvulling: 15px 10px 15px 10px; achtergrondherhaling: geen herhaling; achtergrondpositie: 10px midden; tekst uitlijnen: midden; kleur: # 4F8A10; breedte: 100%; achtergrondkleur: # DFF2BF; }
Ik heb de vereiste eigenschap aan elk veld toegevoegd, dit vereiste attribuut is een Booleaans attribuut dat aangeeft of het veld verplicht is of niet, waar of onwaar.
Indien aanwezig, specificeert het dat dat invoerveld niet leeg mag zijn en moet worden ingevuld voordat het formulier wordt verzonden. Het vereiste kenmerk werkt met de volgende html5-invoertypen: tekst, e-mail, wachtwoord, selectievakjes, radio en bestand.

Bij het invullen van de gegevens van het eerste formulier sturen we per post naar het tweede formulier genaamd formulier2.php wiens code de volgende is.

 $ waarde) {$ _SESSION ['sesionform1'] [$ sleutel] = $ waarde; }?> var13 -> PHP Meerdere vormen

Vorm 2

Opleidingsniveau: ---- Selecteer ---- Technische Universiteit Andere toepasselijke functie: * ---- Selecteer ---- Serverbeheerder Programmeur Ontwerper Werkervaring: * ---- Selecteer ---- Geen

Vervolgens sturen we naar een formulier waar we de gegevens zullen opslaan, voor deze tutorial zullen we de gegevens van de voorgaande sessies laten zien, alleen om te zien welke gegevens elk formulier heeft verzonden.

 $ waarde) {$ _SESSION ['sesionform2'] [$ sleutel] = $ waarde; } gooide uit 'Formulier1 gegevens'; $ sessieformulier1 = $ _ SESSION ['sessieformulier1']; gooide uit '
'; print_r ($ sessieformulier1); gooide uit '
'; gooide uit 'Form2 gegevens'; $ sessieformulier2 = $ _ SESSION ['sessieformulier2']; gooide uit '
'; print_r ($ sessieformulier2); gooide uit '
'; extract ($ _ SESSIE ['sessieformulier1']); $ verbinding = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("bedrijf", $ verbinding); $ sql = "invoegen in klanten (naam, e-mail, adres, telefoon, mobiel, opleiding, functie, ervaring, beschrijving)"; $ sql. = "values ​​('$ name', '$ email', '$ address',' $ phone ',' $ mobile ',' $ education ',' $ position ',' $ experience ',' $ omschrijving ') "; $ query = mysql_query ($ sql, $ verbinding); ?> var13 -> PHP Meerdere vormen<? if ($ zoekopdracht) {echo '

U hebt het proces voltooid en de gegevens opgeslagen

'; } anders {echo '

De gegevens zijn niet opgeslagen

'; } uitgeschakeld ($ _ SESSION ['sessieformulier1']); uitgeschakeld ($ _ SESSION ['sessieformulier2']); ?> var13 ->

We kunnen dus het aantal formulieren toevoegen dat we nodig hebben en in elk formulier zullen we de gegevens in een sessie opslaan en vervolgens alle sessies in een database opslaan, maar het staat ook niet toe om terug te gaan naar een vorig formulier sinds we het stapnummer kennen of formulier We zullen in staat zijn om te weten welke sessie de gegevens van dat formulier bevat en de gegevens te herstellen.

Deze manier van creëren Het formulier met meerdere pagina's stelt ons in staat om informatie beter te organiseren wanneer we veel gegevens moeten verzamelen

Meerdere formulieren maken tegenwoordig deel uit van vrijwel elke webtoepassing. In grote websites met grote hoeveelheden gegevens zijn ze de belangrijkste methode om informatie te ontvangen van de gebruikers die de applicatie gebruiken. Afhankelijk van de volgorde die we aan de clientzijde moeten implementeren voor de toepassingslogica, mogen we ons niet overschrijden met niet meer dan 10 velden, maar de gebruiker wordt moe en verlaat het, het script moet ook alle noodzakelijke beveiliging bevatten, aangezien we zijn sessies gebruiken en de gegevens kunnen worden onderschept.

De juiste methode om te gebruiken voor het vermijden van beveiligingsproblemen is het inkapselen van gegevensverwerking aan de serverzijde met behulp van pHp.

Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave