Zavolani JavaScriptu po odesláni formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
motorcb
Člen | 552
+
0
-

Zdravim.
Mám aplikaci na FB ve které si hraji s odesíláním informací na uživatelovo zeď.
Po odeslání formuláře bych chtěl uživateli otevřít dilogové okno, kde by měl možnost odeslat informace na jeho zeď.

public function wallFormSubmitted(Form $form)
{
    $aValues = $form->getValues(TRUE); // same as: (array) $form->values;
	...
    $this->redirect('this');
}

Ovšem nevím jak po odeslání formuláře vykonat nějakou akci?
Konkrétně zavolat JS funkci postToFeed ???

Díky za rady

petr.pavel
Člen | 535
+
0
-

Můžeš si třeba ve wallFormSubmitted() naplnit proměnnou $this->template->runPostToFeed = true (případně $this->presenter->template…, jestli máš formulář definovaný separé) a pak v šabloně

{if !empty($runPostToFeed)}
  <script>
    runToFeed();
  </script>
{/if}
motorcb
Člen | 552
+
0
-

petr.pavel:
Diky za rady. Nezneplatni se nahodou $this->template->runPostToFeed = true; po redirectu?
Protože mne to takhle nefunguje…

public function wallFormSubmitted(Form $form)
{
    $aValues = $form->getValues(TRUE); // same as: (array) $form->values;
    ...
    $this->template->runPostToFeed = true;
    $this->redirect('this');
}

Editoval motorcb (18. 7. 2012 14:21)

petr.pavel
Člen | 535
+
0
-

Šit, na ten jsem zapomněl. Máš recht.

Takže buď neredirectovat na this, ale na zvláštní šablonu (to se ti asi nehodí), nebo si nenastavovat proměnnou šablony, ale nějaký parametr akce presenteru – nebo persistentní parametr presenteru.

A ten pak v akci po redirekci předávat šabloně a dál, jak jsem navrhoval.

Tabetha
Člen | 140
+
0
-

daj nejaký parameter do URL podľa ktorého sa ti pustí JS alebo nie…či?