⊗ppPmFmOFH 299 of 447 menu

Hantering av formulär i en och samma PHP-fil

I föregående lektion placerades vårt formulär på en sida och skickades till en annan. Det är faktiskt inte nödvändigt. Om du lämnar attributet action tomt eller tar bort det helt, kommer formuläret att skickas till samma sida.

Så här kommer det att fungera: vid första besöket på sidan fyller vi i formuläret med data och klickar på knappen. Därefter uppdateras sidan och dess kod kommer att köras igen, men nu med formulärdatan.

Låt oss titta på ett exempel. Låt oss säga att vi har ett formulär och dess hantering i en fil:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Vid första besöket på sidan kommer funktionen var_dump att skriva ut en tom array. Efter att formuläret skickats kommer den att skriva ut formulärdatan. Det betyder att första gången kommer $_GET att vara tom, och andra gången - kommer den att innehålla formulärdatan.

Detta kan leda till problem. Låt oss säga att vi ska mata in siffror i formuläret och vill visa summan av dessa siffror på skärmen:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

I det här fallet kommer vi vid första besöket på sidan att se PHP-fel relaterade till att arrayen $_GET är tom, medan vi försöker komma åt dess element.

Här bör sägas att du kanske inte ser några fel i webbläsaren. I så fall kontrollera att utskrift av PHP-fel är aktiverat, och se till att det är ditt första besök på sidan och att det inte finns någon formulärdata i adressfältet.

Låt oss åtgärda problemet. För att göra detta lägger vi till ett villkor där vi kontrollerar om formuläret har skickats.

Till exempel kan man kontrollera om $_GET inte är tom. Om $_GET inte är tom - betyder det att formuläret har skickats och vi kan utföra additionen. Annars är det fortfarande vårt första besök på sidan och additionen utförs inte. Så, här är den korrigerade koden:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Fråga användaren efter efternamn, förnamn och patronymikon (mellannamn). Efter att formuläret skickats, skriv ut de inmatade uppgifterna på skärmen.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa