Hlasování s odesíláním hlasu pomocí AJAXu + dynamický obsah
- kytart
- Člen | 10
Mám stránku, kde se nachází seznam položek. U každé položky je
tlačítko, které znamená hlas pro tu danou položku. Je potřeba, aby se
jednotlivé položky renderovaly jako samostatné komponenty (používají se
v jiných částech webu jednotlivě)
Po kliknutí na tlačítko se má pomocí AJAXu zavolat
handleAction()
, kde proběhne nějaká práce s databází
a poté:
if($this->presenter->isAjax()) {
$this->invalidateControl();
} else {
$this->redirect('this');
}
Snažil jsem se nastavit v šabloně komponenty dynamický název snippetu:
<div n:snippet="nazev{$id}">
...
</div>
Jenže to nejde, protože mi to vyhodí chybu, že dynamické snippety musim uzavřít do statického. Dá se to nějak obejít? Ta komponenta má trošku složitější strukturu, než se zdá z popisu co jsem uvedl, proto se hodí, aby měla vlastní třídu, jenže v takovém případě bych musel přijít na způsob, jak z těla komponenty invalidovat nadřazený statický snippet, který je deklarovaný v šabloně, která volá komponentu. Dá se to nějak obejít nebo musim měnit strukturu, aby uzavírající statický snippet i ty dynamické byly v jedné šabloně a tedy „o sobě věděli“?
- Vojtěch Dobeš
- Gold Partner | 1316
Primární otázka: proč potřebujíš mít v té komponentě snippet
s dynamickým názvem? Použij obyčejný statický název – i tak bude
snippet pro každou z těch komponent jedinečný (to je zajištěno
unikátností oněch instancí, resp. pravidlem že každá komponenta musí
mít jedinečný název), protože předpokládám, že používáš
UI\Multiplier
.