Vlastní JS při odeslání formuláře

ForestCZE
Člen | 209
+
0
-

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
+
0
-

č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
+
0
-

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
+
+1
-

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
+
0
-

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