Snippet / Ajax základní otázky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
KillPrd
Začátečník | 110
+
0
-

Ahoj,
Rád bych pomocí ajaxu vracel jiste veci do urcitých míst v šabloně ale:

Nepochopil jsem když volám ajax onclick na urcitý handler jak načíst jistou věc v mém případě formulář do jiste části odkud to volám v šaboně například do tabulky

Zřejmě jsem nepocopil kde má být označen snippet zda v sablone kam se načítají data nebo má bát v sablone která je načítána nebo jeho určitá část.

volana sablona:
{snippet form}
{widget katForm}
{/snippet}

tam kam se to má načíst mám:
{snippet}
{include form}
{/snippet}

:-(

22
Člen | 1478
+
0
-

Projdi si tutorial od Pandy..nic lepšího na pochopení tady asi není: https://pla.nette.org/…ivajici-ajax

KillPrd
Začátečník | 110
+
0
-

No to je hezkej tutorial ale v něm se přepisují jisté věci věcma které se zmení ale já potřebuji
do prazdneho divu napraskat formulář po klikdnuti na buton ci ahref. ted uz vim ze snippety jsou v cilovem layoutu ale jak docilim toho ze se nacte neco az po tom jistem klimnuti

22
Člen | 1478
+
0
-

tak buď si to ošetři nějakou hodnotou, kterou si pošleš do handleru, aby jsi věděl že button se stisknul a podle toho komponentu vykresli anebo si tam nahod na ten DIV nejakej jQuery .hide()/.show() nabindovanej na ten button nebo link.

a navic, prece si do toho handleru muzes dat invalidaci toho snipetu, takze pokud je defaultne prazdnej a plni ho handler, tak nevidim problem..

Editoval 22 (17. 9. 2010 10:39)

KillPrd
Začátečník | 110
+
0
-

No at dělám co dělám tak mi to nejde, nebyl by někde nejak velmi jednoduchej priklad třeba s prenesením textu po zavolani do urciteho mista?

KillPrd
Začátečník | 110
+
0
-

Tak opravdu nevím co dělám špatně…

<?php
<a href="#" onclick="{link User:ajax};" class="ajax">Hledej:</a>

{snippet flashes}
{foreach $flashes as $flash}<div class="flash {$flash->type}">{$flash->message}</div>{/foreach}
{/snippet}
?>

a presenter

<?php
public function renderAjax()
{
$this->flashMessage('kukuc.');

}
?>

ovšem nic se neprovede… už s tím bojuju dva dny zjistil jsem že v nove verzi nette se už nepoužívají @ tedy aspon predpokládám protože pak mi to ubec nenaběhlo…

Aurielle
Člen | 1281
+
0
-

Nemáš tam $this->invalidateControl('flashes');. Jinak mé demo na AJAX (staré snippety): http://nette.valvegames.cz/ajax-demo.rar

Editoval gmvasek (19. 12. 2010 11:03)

KillPrd
Začátečník | 110
+
0
-

Moc děkuji tvé demo mi moc pomohlo opravdu!! Jeste bych zmínil jen to že jsem nemusel uvádět zavináče v nové verzi nette!
Alelůůja

KillPrd
Začátečník | 110
+
0
-

Tak jsem se radoval asi předčasně ta problém je asi zřejmě v zavináčích co jsem si myslel že tam nebudou používány. pokud nepoužiju @ stránka se mi totálně rozhodí pokud použiju zavináš tak se strának vubec nezorbazí nebo napíš hlášku

syntax error, unexpected ‚}‘

a na tohle jsme nikde nenašel ve foru odpověd…

KillPrd
Začátečník | 110
+
0
-

Tak jsem přešel na novější verzi nette a vyřešeno :-( trošku divné no ale budiš…

KillPrd
Začátečník | 110
+
0
-

Měl bych otázku jak vypsat externi sablonu ve snippetu.
Používám kod hadletu:

<?php
if ($this->isAjax())
$template = $this->template;
$template->setFile(APP_DIR . '/templates/tabulkaUsers.phtml');
 $this->template->items = dibi::query("SELECT [id],[jmeno],[prava],[stat] FROM [mylogin] WHERE ID = 1");
 $template->render();

$this->invalidateControl();
?>

data se načcou do externí sablony ale ne do snippetu…

Editoval KillPrd (20. 12. 2010 10:10)