Vlastní JS při odeslání formuláře
- ForestCZE
- Člen | 209
Ahoj, zkoušel jsem to hledat, ale neúspěšně. Mám nějaký formulář.
Presenter:
protected function createComponentTest()
{
$form = new Form;
$form->addText('text', 'Text:');
$form->addSubmit('odeslat', 'Odeslat');
$form->onSuccess[] = [$this, 'testSucceeded'];
return $form;
}
public function testSucceeded(Form $form)
{
if($this-user->isLoggedIn())
{
$values = $form->getValues();
....
}
else
{
//Nějaký jQuery kód
$this->flashMessage('Nejsi přihlášen');
}
}
Latte:
{control test}
Jak do tohoto konkrétního formuláře po submitu správně vložit jQuery? Díky předem za pomoc.
Editoval ForestCZE (18. 7. 2018 23:03)
- Ondřej Kubíček
- Člen | 494
čeho chceš dosáhnout? má to být ajaxové nebo ne? proč potřebuješ něco vložit do jquery?
řešeních je víc..
klasicky třeba měj v šabloně nějakou proměnou a po tom co uděláš redirect po odeslání formu, setneš tu proměnou třeba na true a v šabloně „zobrazíš“ ten kod javascriptu co se má vykonat
- ForestCZE
- Člen | 209
Ondřej Kubíček napsal(a):
čeho chceš dosáhnout? má to být ajaxové nebo ne? proč potřebuješ něco vložit do jquery?
řešeních je víc..
klasicky třeba měj v šabloně nějakou proměnou a po tom co uděláš redirect po odeslání formu, setneš tu proměnou třeba na true a v šabloně „zobrazíš“ ten kod javascriptu co se má vykonat
Jde o to, že člověk napíše text do textarea a ten se uloží do DB. Když něco napíše a není přihlášen, po odeslání zůstane na stránce, neztratí se mu text a vyhodí se flashmessage. On pak jde a klikne na odkaz s přihlášením a já potřebuji, když vyskočí flashmessage, že není přihlášen, aby se provedl jQuery kód, který mu zkopíruje text do clipboardu.
EDIT: Nepotřebuji AJAX, stačí klasicky.
Editoval ForestCZE (18. 7. 2018 23:18)
- Ondřej Kubíček
- Člen | 494
a není teda jednodušší, když mu ten text uložíš do session? :) pak se přihlásí, pokud ho v session najdeš, vložíš ho do textareny, na serveru ti stačí pár řádků kodu a nemusíš do toho tahat javascript
- ForestCZE
- Člen | 209
Ondřej Kubíček napsal(a):
a není teda jednodušší, když mu ten text uložíš do session? :) pak se přihlásí, pokud ho v session najdeš, vložíš ho do textareny, na serveru ti stačí pár řádků kodu a nemusíš do toho tahat javascript
To mě taky napadlo, hned jako druhé řešení.
Nakonec jsem si udělal třídu, kde získávám, nastavuji a mažu sesssion. Pokud přijdu na stránku, kde je formulář, zjistím, jestli je něco v session a nastavím hodnotu textarey. Když odešlu formulář a nejsem přihlášen, uložím hodnotu do session a pokud se vrátím a při dalším odeslání jsem už přihlášen, tak to zase smažu :) Díky moc za super nápad @OndřejKubíček