Dvě varianty formuláře, nette řešení?
- Kakaku
- Člen | 27
Dobrý den,
na stránce Readbook.cz hodlám mít
formulář zprostředkovávající registraci a přihlášení. Uživateli se
v základu otevře login form ale bude moct ve stejném modalboxu překliknout
na registraci. A můj dotaz zní, jak to udělat v Nette (napadá mi to dát
do divu a řídit přes javascript viditelnost). Ale je řešení správné?
Musím tam ošetřovat „pokud není zobrazený, nemusí být vyplněné
všechny údaje“ apod.
- Jiří Nápravník
- Člen | 710
Ty formulare budou dva ne? Ci-li formular pro login bude mit jedno tlacitko pro submit a pro registraci druhy formular se submit tlacitkem. Tim padem netreba resit pokud je/neni zobrazen…
- GEpic
- Člen | 566
To je záležitost Bootstrapu (a pokud ho nevyužíváš, můžeš využít jeho JS, každopádně, nevyužít bootstrap = ztráta času pro všechny :D), já to řeším tak, že mám jeden modal Login, v něm je tlačítko na registraci, na tomto tlačítku je data attribute data-dismiss=„modal“ a zároveň target=„#registerModal“… tím pádem se mi zobrazí místo loginu → register modal. Stejně tak tam můžeš dodělat tlačítko na zapomenuté heslo.
Ty jediné co uděláš, je že v kódu vypíšeš 2 formuláře do dvou modalů, čili toto je záležitost frontendu a vůbec nepřemýšlej, jak do toho zapojit Nette.
Ukázka zde (v pravo nahoře tlačítko přihlásit se → zapomenuté
heslo):
Rychlý projekt
Popř. si dej inspect na tlačítko „Zapomenuté heslo“ a zkopči si to… MŮŽEŠ :D
Editoval GEpic (4. 7. 2016 23:53)
- Karlito
- Člen | 18
Ahoj, nemohl by si mi ze svého kódu vytáhnout modály i s invalidací? Pač řeším jak nejefektivněji to zapsal v nette celkově. Tak aby mi modály fungovali správně a tak aby při validaci se mi to nepřešlo na obyč stránku ale vykreslily se ty errory v tom modalu. Kdyby to šlo nějak vytáhnout jak to máš, tak bych byl moc vděčný.
- Karlito
- Člen | 18
Kakaku napsal(a):
Nevím jestli si rozumíme, ale možná myslíš toto:
<ul class="errors" n:if="$form->hasErrors()"> <li n:foreach="$form->errors as $error">{$error}</li> </ul>
Omlouvám se, napsal jsem to trochu zmateně. Ale ve výsledku mi stačilo
validovat formulář js a lépe validovat modalní okno.
Díky za snahu ;)