⊗ppPmFmOFH 299 of 447 menu

Spracovanie formulára v jednom súbore PHP

V predchádzajúcej lekcii bol náš formulár umiestnený na jednej stránke, ale odoslaný na inú. V skutočnosti to nie je nevyhnutné. Ak ponecháte atribút action prázdny alebo ho úplne odstránite, formulár bude odoslaný na tú istú stránku.

Ako to bude fungovať: pri prvom vstupe na stránku vyplníme formulár údajmi a klikneme na tlačidlo. Potom sa stránka obnoví a jej kód sa vykoná znova, ale už s údajmi z formulára.

Pozrime sa na príklad. Nech máme v jednom súbore formulár a jeho spracovanie:

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

Pri prvom vstupe na stránku funkcia var_dump vypíše prázdne pole. A po odoslaní formulára vypíše už údaje z formulára. To znamená, že prvý krát bude $_GET prázdne, a druhý krát - bude obsahovať údaje formulára.

To môže viesť k problémom. Nech, napríklad, do formulára budeme zadávať čísla a chceme vypísať súčet týchto čísel na obrazovku:

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

V tomto prípade pri prvom vstupe na stránku uvidíme chyby PHP, spojené s tým, že pole $_GET je prázdne, a my pristupujeme k jeho prvkom.

Tu treba povedať, že u vás sa chyby nemusia objaviť v prehliadači. V tomto prípade skontrolujte, že máte zapnutý výpis chýb PHP, a tiež sa uistite, že máte prvý vstup na stránku a v adresnom riadku nie sú údaje formulára.

Opravme tento problém. Preto pridajme podmienku, v ktorej budeme kontrolovať to, že formulár bol odoslaný.

Napríklad, môžeme kontrolovať $_GET na neprázdnosť. Ak $_GET nie je prázdne - tak formulár bol odoslaný a môžeme vykonávať sčítanie. V opačnom prípade máme ešte prvý vstup na stránku a sčítanie sa nevykoná. Takže, tu je opravený kód:

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

Opýtajte sa používateľa na priezvisko, meno a priezvisko. Po odoslaní formulára vypíšte na obrazovku zadané údaje.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť