Vyvolání Alert v metodě presenteru
- Popik
- Člen | 30
Ahoj,
v prezneteru mam handler, který volá metodu z modelu. Podle toho co metoda vrátí se buď přesměruje stránka nebo bych chtěl aby se zobrazila chybová hláška.
Když jí vyvolam takto:
<?php
echo „<script language=javascript>alert(‚kuuk‘)</script>“;
?>
tak se sice zobrazí, ale jakoby v novém okně. Chtěl bych aby se zobrazila jako když se validují formuláře, tzn. obsah stránky zůstane + se zobrází ten alert. Díky moc za rady.
- marek.dusek
- Člen | 99
Jestli tim „co delaji formulare“ myslis validaci v realnem case javascriptem, bez refreshe stranky, jde to udelat tak, ze formular odesles ajaxem (je na to tusim komponenta v extras, nebo uz je to primo v nette core?), udelas akci a pri chybe vratis pouze flash message (prip. je mozne pouzit form error), cizm se ti prekresli pouze ta.
A jestli nerozumis, co jsem prave napsal, projdi si znovu tutorialy :-)
- odin
- Člen | 50
Popik napsal(a):
echo „<script language=javascript>alert(‚kuuk‘)</script>“;
No tak kazdopadne bys to mel vypsat pres sablonu, takze v presenteru po odeslani formualare si to ulozis do
<?php
$this->template->error = "kuuk"
?>
a v sablone to pak vypises
<?php
<script type='text/javascript'>alert({$error})</script>
?>
- Popik
- Člen | 30
Díky moc, takhle to celkem funguje.
Mám to takto:
Vytvořil jsme si ve třídě presenteru proměnnou
<?php
public $error = "0"
?>
V handleru mám:
<?php
public function handleRemoveUser($id) {
$this->error="kuuk";
}
?>
V render mám:
<?php
public function renderDefault() {
$this->template->error = $this->error;
}
?>
V šabloně toto:
<?php
{if $error=="kuuk"}
<script type="text/javascript">alert({$error})</script>
{/if}
?>
Funguje to dobře akorát se chci zeptat zda nevadí, že v tom handleru chybí redirect. Někde jsem četl že by se vždycky měl použít. Když ho použiju tak se samozřejmě nic nezobrazí jelikož proměnná $error se zase inicializuje na výchozí hodnotu 0.
Díky za připomínky.
EDIT: Tak koukám že to vadí kvůli znovunačtení a asi tedy i pokud se na tu stránku dostanu pomocí před/zpět. Ale tak jedná se pouze o zobrazení chyby, tak to zatím nebudu řešit. Díky za radu.
Editoval Popik (22. 7. 2010 19:25)
- nAS
- Člen | 277
Popik napsal(a):
To zní zajímavě :-) Ale jak?
No stejně jako vypisuješ flashmessages, tak je budeš vypisovat v šabloně do js kódu který vyhazuje alert.
Ola napsal(a):
a co uživatelé s vypnutým javascriptem?
A ještě to bude strašně otravné, že bude muset uživatel pokaždé klikat na to okno. Mě to přijde také jako pitomost, ale proti gustu…
- Mikulas Dite
- Člen | 756
Alert je naprosto proti uživateli, který mnohem radši snese nekonzistentní vzhled formulář / flashmessage. Každopádně to, co vyplivne form je taky na tobě; ani tam nemusíš mít alert box, ale něco hezčího.