Formulářový prvek text s pravidly – Nějaký jiný nápad?
- GEpic
- Člen | 566
Ahoj, vytvořil jsem aplikaci a nyní již funguje (nevím, zda-li můžu postovat odkaz).
Každopádně mám tento formulářový prvek (vím, není to nejlepší validace tel. čísla)
...
$form->addText('phone', 'Telefonní číslo:')
->setRequired('Zadejte prosím své telefonní číslo')
->addRule(Form::INTEGER, 'Telefonní číslo musí být ve správném tvaru')
->addRule(Form::LENGTH, 'Telefonní číslo musí mít 9 číslic', 9);
...
Formulář je následně zpracován a zavolána následující funkce:
/**
* Change user's phone
* @param id
* @param phone
* @return boolean
*/
public function changePhone($id, $phone)
{
$row = $this->database->table(self::TABLE_NAME)->where('id', $id)->fetch();
if (!$row)
{
return false;
}
$row->update(array(
'phone' => $phone
));
return true;
}
Všichni zaregistrovaní uživatelé musejí zadat 9 číslic, každopádně jedné uživatelce se podařilo projít registrací s tím, že se do databáze uložili pouze 3 znaky.
Jak je to možné?
PS: Za jakékoliv jiné typy budu velice rád.
Editoval GEpic (5. 1. 2016 16:14)
- chemix
- Nette Core | 1310
@GEpic
PS: nezkousel jsem, ale narazil jsem na https://github.com/…j/form-phone
- GEpic
- Člen | 566
chemix napsal(a):
@GEpic
PS: nezkousel jsem, ale narazil jsem na https://github.com/…j/form-phone
Také jsem na to narazil, snažil jsem se najít lehčí řešení (např pomocí Patternu), ale tomuto se nakonec asi nevyhnu a budu se muset jednomu políčku věnovat víc, než doposud. :)
- akadlec
- Člen | 1326
Přesně jak píše @CZechBoY nic extra tam není. Ten JS linkovat nemusíš pokud nepotřebuješ JS validaci. A ještě je tu minimalistická verze, kdy nepoužiješ ipub\form-phone ale jen ipub\phone a z něj jen validační pravidlo.
- GEpic
- Člen | 566
akadlec napsal(a):
Přesně jak píše @CZechBoY nic extra tam není. Ten JS linkovat nemusíš pokud nepotřebuješ JS validaci. A ještě je tu minimalistická verze, kdy nepoužiješ ipub\form-phone ale jen ipub\phone a z něj jen validační pravidlo.
Toto se mi asi v tuto chvíli zamlouvá daleko víc než využívat celý ipub\form-phone (který já bych nevyužil)
->addRule(Phone\Forms\PhoneValidator::PHONE, 'Err Desc.', ['CZ']);
Editoval GEpic (6. 1. 2016 11:40)
- akadlec
- Člen | 1326
ipub\form-phone navíc přináší integraci do formulářů nette, takže ti stačí použít ->addPhone(). Automaticky vytvoří slectbox pro zemi/předčíslí a input pro číslo a návratová hodnota je rozparsované číslo, takže si můžeš do db ukládat třeba číslo v mezinárodním formátu apod.