Více stejných „komponent“ na stránce
- dominikdavid
- Člen | 3
Mám seznam věcí, ke každé věci vypisuju pomocí komponenty nějaké údaje. Problém je v tom, že komponenta jednoho druhu, může být na stránce jen jedna (u ostatníc věcí se zobrazí údaje z první komponenty). Jak tento problém vyřešit? Pomocí čeho to udělat? Díky za pomoc.
- dominikdavid
- Člen | 3
vrtak-cz napsal(a):
„Plnit“ komponentu datama až v render fázi.
jenže ja potřebuju ke každe věci tahat data z databaze. a davat je nějakým způsobem dohromady a ještě u nich zobrazit formulař pro přidání dalších informací.
Tohle řešení přes komponentu jsem udělal. Když jsem informace i s formulářem zobrazoval u jedne věci na stránce. Pak jsem to rozšířil i na seznam věcí.
- Patrik Votoček
- Člen | 2221
Zkus pohledat tady na fóru
Namátkou: https://forum.nette.org/…e-komponenty
- despiq
- Člen | 320
takze nejdriv to zkus vymyslet tak abys vic stejnych komponent na strance nemel
kdyz budes opravdu presvedcen ze to jinak nejde tak se jukni
https://forum.nette.org/…tu-do-kosiku
mel bys tam najit co potrebujes
- Honza Marek
- Člen | 1664
Já něco takového řešil přes poděděný ComponentContainer, který jsem připojil k presenteru a k sobě připojoval konkrétní komponenty s názvem podle id.
Příklad: objednávkový formulář pro různé výrobky.
<?php
/**
* Shop item component container
*/
class ShopItemComponentContainer extends Nette\ComponentContainer {
protected function createComponent($name) {
$form = new Nette\Application\AppForm($this, $name);
$form->addHidden("id")->setDefaultValue($name);
$form->addText("amount", "Množství");
$form->addSubmit("buy", "Koupit");
}
public function render($id) {
$this->getComponent($id)->render();
}
}
?>
- dominikdavid
- Člen | 3
Jo přesně, k tomi jsem se taky dostal, problem je v tom, že šabloně
předáme „pole“ objektů, které se v šabloně prochází. Jde ze
šeablony předat parametr do prezenteru, kde se komponenta vytváří
{widget xxxControl}
Honza Marek napsal(a):
Já něco takového řešil přes poděděný ComponentContainer, který jsem připojil k presenteru a k sobě připojoval konkrétní komponenty s názvem podle id.
Příklad: objednávkový formulář pro různé výrobky.
Editoval dominikdavid (11. 6. 2010 23:28)