JoomlaDev.eu - Vše o vývoji CMS Joomla
Redakční systém WordPress - Nejlepší redakční systém zdarma - WordPress
Průvodce formulářovým API - validace a odesílání formulářů |
|
|
|
| Pondělí, 06 Duben 2009 18:29 |
Dnes navážeme na článek o tvorbě a šablonování formulářů v Drupalu a povíme si o validaci (kontrole vyplnění jednotlivých formulářových polí) a odesílání formuláře.Validace formulářůValidace formulářů není nic jiného než kontrola vstupních dat v jednotlivých polích. Například pokud vytvoříme formulářové pole poštovní směrovací číslo, budeme chtít aby uživatel zadal vždy pouze číslo, pomocí API můžeme snadno vytvořit funkci,která nám toto bude kontrolovat. Jméno funkce, která kontroluje formulář se skládá z ID formuláře a sufixu _validate. Pokud se tedy funkce vytvářecí formulář nazývá test_form, funkce která ho bude kontrolovat se bude jmenovat test_form_validate. Funkce má dva argumenty: $form a $form_state. $form je pole odeslaného formuláře a $form_state['values'] obsahuje hodnoty, které budeme kontrolovat. Ukázkový kód bude tedy vypadat:
Jak vidíme je to velice jednoduché, vezmeme pole name, cili jméno zkontrolujeme jestli je vyplněno, a když ne, vyhodíme hlášku ošpatné vyplnění.Takto můžeme kontrolovat například i čísla, jednotlivé znaky atd. pomocí regularních výrazů. Vše ostatní za nás obstará API. Odesílání formulářůOdesílání je velice podobné validaci, opět stačí vytvořit funkci složenou z názvu funkce vytvářující formulář a přípony _submit, funkce má ty samé argumenty jako při validaci. Raději si opět ukážeme kód:
Tento kód vloží do databáze záznamy z formulářového pole a zobrazí hlášku o úspěšném uložení. Poznámky:
K učení přesměrování po odeslání se používá proměnná $form_state['redirect'], která používá pro přesměrování funkci drupal_goto. Pokud proměnnou nenastavíme formulář se přesměruje sám po odeslání formuláře. Je slušnost použít funkci drupal_set_message() k oznámení, že formulář byl úspěšně odeslán. Článek byl přeložen z oficiálních stránek drupal.org. Ukázky funkce test_form můžete najít ve článku o tvorbě a šablonování formulářů |