Ako overiť položky vo formulári

Pár minút dozadu som si prechádzal jednu staršiu stránku ktorú som robil pre chlapíka ktorý prerába byty a hovoril som si veď skúsim dať do validátora a uvidíme čo povie.

No a validátor povedal. :-)

Keďže to bola stránka ktorá pochádzala z čias keď HTML5 iba začínalo a ja som o niečom takom nemal ani poňatia tak mi validator prezradil, že používam normu XHTML 1.0 Transitional. Na tom by nebolo nič zlého kebyže ta norma nie je taká prísna.

Každopádne som si našiel chybu v podobe neošetreného kontaktného formulára. Tak som sa do toho pustil. A tu je niekoľko spôsobov ako to rýchlo a jednoducho spraviť.

1. spôsob – HTML 5

Asi najjednoduchším spôsobom ako ošetriť formulár je použitie normy HTML5 ktorá zaviedla parameter required ktorý hovorí internetovému prehliadaču, že dané políčko je povinne.

<input type="text" name="meno" required="" />

2. spôsob – JavaScript

Ak nemôžeme využiť HTML 5 tak veľmi pekným spôsobom ako ošetriť formulár je použitie jednoduchej JavaScriptovej funkcie ktorú doplníme do hlavičky stránky a formuláru doplníme parameter name="" a onsubmit="".

< !DOCTYPE HTML>
<html>
  <head>
    <title>Prihlasovací formulár</title>
    <script type="text/javascript">
      function KontrolaNaplneniaFormulara()
      {
        var F = window.document.prihlasovaci_formular;
        var hlaska = "";
        if (F.meno.value.length==0) { hlaska=hlaska+"- Meno\n"; }
        if (F.heslo.value.length==0) { hlaska=hlaska+"- Heslo\n"; }
        if (hlaska.length>0)
        {
          oznam="Je treba vyplniť položky:\n\n";
          oznam+=hlaska;
          window.alert(oznam);
          return false;
        }
        return true;
      }
    </script>
  </head>
  <body>
    <form action="prihlasenie.php" name="prihlasovaci_formular" method="post" onsubmit="return KontrolaNaplneniaFormulara();">
      Meno: <input type="text" name="meno" />
      Heslo: <input type="password" name="heslo" />
      <input type="submit" />
    </form>
  </body>
</html>

3. spôsob – PHP

Ak nechceme využiť JavaScript alebo HTML5 môžeme použiť overenie formulára pomocou PHP tak ako to robí napríklad systém Drupal. To či je položka formulára vyplnená zisťuje pomocou PHP.

if (is_null($_POST['meno']))
{
  return false;
}
Značky: