Sledujte ma na Twitteri

Overovanie formulárových prvkov pomocou AJAXu za pár minút

Kategória: PHP,JS,HTML, publikované: 22.07.2007, autor: Igor Kulman

Prednedávnom bolo mojou úlohou vrámci tvorby jedného webu implementovať do registračného formulára asynchrónne overovanie emailovej adresy, a to overenie na platný tvar a hlavne overenie, či sa už daný email náhodou v databáze nenachádza.

Keďže písať AJAX requesty ručne je dosť zdĺhavé a pracné, rozhodol som sa využiť možnosti knižnice prototype. Vstupné pole, pre zadanie emailovej adresy malo klasický tvar

  1. <div class="input">
  2. <label for="email">Email:</label>
  3. <input type="text" name="email" id="email" maxlength="60" value="@" onchange="mail_check(); return false;"/>
  4. <span>Povinné</span>
  5. </div>

pridal som len volanie funkcie mail_check() pri zmene vstupného poľa, teda spomínané asynchrónne overovanie vstupu.

Samotná funkcia na overenie zadanej emailovej adresy je vďaka použitiu knižnice prototype úplne jednoduchá a prehľadná

  1. function mail_check() {
  2. new Ajax.Request(
  3. "/weastra/sk/hostessing/check",
  4. {
  5. method: "post",
  6. parameters: {
  7. email: $("email").value
  8. },
  9. onSuccess: function(transport) {
  10. if (transport.responseText == "exists") {
  11. form.setStatus($("email").parentNode, false, "E-mail už existuje");
  12. } else if (transport.responseText == "wrong") {
  13. form.setStatus($("email").parentNode, false, "Neplatný e-mail");
  14. } else if (transport.responseText == "ok") {
  15. form.setStatus($("email").parentNode, true, "E-mail v poriadku");
  16. }
  17. }
  18. }
  19. );
  20. }

Poznámka: setStatus() je funkcia, ktorá zmení textu elementu span, ktorý prísluší k danému formulárovému prvku.

Funkcia po zavolaní pošle metódou POST zadaný email na obslužnú stránku, ktorá následne vráti odpoveď v tvare wrong, exists, alebo ok, teda neplatný, existujúci email, alebo email, ktorý je v poriadku a nenachádza sa ani v databáze.

Obslužná funkcia na strane servera je taktiež úplne jednoduchá, na overenie syntaxe adresy sa používate porovnanie s regulárnym výrazom

  1. private function check_mail() {
  2. global $db, $r, $tpl;
  3. $email = trim($_POST["email"]);
  4. if (empty($email)||(!preg_match("/^[^@]+@[^@.]+\.[^@]*\w\w$/",$email))) {
  5. echo "wrong";
  6. return;
  7. }
  8. $exists=$db->getCell("SELECT user_id FROM users WHERE login='$email'");
  9. if ($exists>0)
  10. echo "exists";
  11. else
  12. echo "ok";
  13. return;
  14. }

Použitie AJAXu pomocou knižnice prototype teda nie je nič zložité.

Sledujte moje články: vybrali.sme.sk Linkuj.cz  

Ako jednoducho pretaktovať grafickú kartu
Keďže mám novú grafickú kartu Gigabyte GeForce 8500GT, ktorá v podstate patrí do lowendu, nedosahuje nejaký vysoký... čítať ďalej

Platby z Google AdSense naozaj chodia
Tak som sa konečne dočkal a moja prvá platba z programu Google AdSense, do ktorého je... čítať ďalej

Komentáre

RSS komentárovRSS komentárov

K článku "Overovanie formulárových prvkov pomocou AJAXu za pár minút" zatiaľ nie sú žiadne komentáre.

 

Pridať komentár

(povinné)

(povinný,nezverejňuje sa)


Odoslať komentár

Autor

Igor Kulman Igor Kulman at LinkeIn
Igor Kulman at Flick
Igor Kulman at Twitter
Igor Kulman at Posterous

Autor je absolventom softvéroveho inžinierstva na Univerzite Karlovej v Prahe, pracuje ako Windows Phone 7 vývojár v Inmite a pôsobil aj ako prispievateľ počítačového magazínu.

Kategórie

Náhodná referencia

Penzión sv.Mitro

Penzión sv.Mitro