nefunguje prekresleni snippetu
- pekinen
- Člen | 29
Prosim o pomoc! Prolezl jsem snad vsechny thready a priklady, ale porad nemuzu rozchodit prekresleni snippetu pomoci Ajaxu.
V sablone komponenty volam signal „change“, ktery ma zpusobit dotaz na jinou tabulku v DB a prekreslit vysledek v snippetu menu.
sablona menu.html:
<a href="{link change!}" class="ajax">change</a>
{snippet menu}
<ul>
{foreach $menu as $item}
<li>{$item['nazev']}</li>
{/foreach}
</ul>
{/snippet}
komponenta Menu.php:
<?php
/*
** Komponenta na vykresleni hlavniho menu
*/
class Menu extends Control
{
/** @var Model */
protected $model;
/** @persistent */
public $table = "aitom_struktury";
/** @var Menu */
//public $menu;
public function __construct()
{
parent::__construct();
$this->model = new Model;
}
public function handleChange()
{
$this->table = "aitom_skupiny";
//debug::dump($this->table);
}
/**
* Renders menu.
*/
public function renderMenu()
{
$template = $this->createTemplate();
$template->menu = $this->model->getDataSource($this->table);
//debug::dump($template->menu);
$template->setFile(dirname(__FILE__) . '/menu.phtml');
$this->invalidateControl('menu');
$template->render();
}
}
?>
presenter HomepagePresenter.php:
<?php
/*
** Presenter pro hlavni stranku
* @persistent(navigace)
*/
class HomepagePresenter extends /*Nette\Application\*/BasePresenter
{
public function renderDefault()
{
$this->template->menu = $this->getComponent('navigace');
}
/**
* Component factory. Used for lazy component loading
*
* @param string $name of component
* @return Control
*/
protected function createComponentNavigace($name)
{
return new Menu;
}
}
?>
a sablona Homepage.default.phtml:
<a href="{link Homepage:}"><h1>Dorotka</h1></a>
<div id="left">
@{control navigace:menu}
</div>
<div id="right">
{snippet detail}
{/snippet}
</div>
- Ondřej Mirtes
- Člen | 1536
Bez AJAXu (s vypnutým Javascriptem) to funguje?
Podívej se do Firebugu, jestli se něco odesílá (záložka Síť).
Máš tam ten jQuery plugin?
- pekinen
- Člen | 29
LastHunter napsal(a):
Bez AJAXu (s vypnutým Javascriptem) to funguje?
Podívej se do Firebugu, jestli se něco odesílá (záložka Síť).
Máš tam ten jQuery plugin?
Bez AJAXu to funguje spravne. S Ajaxem to prekresli, ale nic nevypise. Pouzivam jquery.nette.js z prikladu.
Editoval pekinen (14. 7. 2009 15:35)