Component with name ‚Homepage‘ does not exist
- marcelxy
- Člen | 70
Zdravim, mám drobný problém mám ajaxovou editaci tabulky a po uložení potřebuji aby jen ajaxove updatnul ten seznam ne naloudoval celou stránku takže po uloženi mám v samostatné komponentě redirect na domací presenter v kterém vytvářim jen instanci te dané komponenty.
$this->redirect('Homepage:edit',$this->id);
a vyhodí to hlašku Component with name ‚Homepage‘ does not exist !
jak se dostanu z komponenty na presenter v kterém tu komponentu volám?? nechci jen přesměrovani na ‚this‘!to funguje ale chci přesměrovat na presenter:akce,parametr což nejde nevím proč?
diky za rady
- marcelxy
- Člen | 70
Jo diky moc, to funguje ale stejně jsem nedosáhnul toho co jsem chtěl, já bych potřeboval pouze updatovat seznam po uloženi a poslat snippet toho seznamu nic víc! po tomto přesměrovaní chce asi zese vykreslit celou šablonu tekže mu chybí zas všechny proměnné které má v renderDefault ale já chci updatovat jen snippet ne kreslit celou šablonu je to ajax.
$this->presenter->redirect('Homepage:edit',$this->id);
ten :edit je handleEdit ne actionEdit Neví někdo co stím??
- marcelxy
- Člen | 70
No to samozdřejmě vím a to právě řeším že když mám samostatnou
komponentu a vni po odeslaní formu uložím data,tak jak docílit toho aby po
uložení dat už nic neudělal a jen se vrátil spět do presenteru na
hendleEdit
kde už má vše co potřebuje k update seznamu ajaxem včetně
$this->redrawControl('meho snippetu');
problém je vtom že když uloží data automaticky mi načte celou stránku
znovu aniž by ho zajímalo že se jedná o ajax!
jinak samozdřejmě ajax mi funguje, před odesláním formuláře vše pracuje
správně!
- Oli
- Člen | 1215
marcelxy: Jestli to tak máš, tak se omlouvám. Jen pro ujasnění, máš tam něco jako?:
if($this->presenter->isAjax())
{
$this->redrawControl('meho-snippetu'); // Pokud máš snippety v presenteru tak $this->presenter->...
} else
{
$this->presenter->redirect('Homepage:edit',$this->id);
}
Protože jinak se ten redirect provede vždy. Případně pošli nějakej větší kus kodu, protoze mě takhle nenapadá, co by to mohlo jinýho způsobovat.
- marcelxy
- Člen | 70
Oli napsal(a):
marcelxy: Jestli to tak máš, tak se omlouvám. Jen pro ujasnění, máš tam něco jako?:
if($this->presenter->isAjax()) { $this->redrawControl('meho-snippetu'); // Pokud máš snippety v presenteru tak $this->presenter->... } else { $this->presenter->redirect('Homepage:edit',$this->id); }
Protože jinak se ten redirect provede vždy. Případně pošli nějakej větší kus kodu, protoze mě takhle nenapadá, co by to mohlo jinýho způsobovat.
ano takhle podobně to mám v presenteru v metodě hendleEdit která která umí updatovat seznam a taky vytvořit instanci toho edit form a ajaxově to poslat spět
public function handleEdit($id)
{
$this->id = $id;
$this->row = $this->id;
$this->formEdit = $this->getComponent('formEdit');
$this->redrawControl('list') ;
}
public function createComponentFormEdit() {
$form = new form($this->conect);
$form->setDefaults($this->id);
return $form;
}
až doposut to funguje v pořádku i ajaxově ta komponenta je
v samostatné třídě a je vní i uložení dat takže po odeslaní a
uložení dat z toho formu mi pořád chce načítat znovu celou stránku a
nejsem schopen ho přimět aby provedl znovu jen hendleEdit($id) v presenteru
nic vic!
Myslím že mám asi problém že ten formulář se mi neodesílá ajaxově! ale
ted nevím jak toho dosáhnou odeslání formu ajaxově??
Editoval marcelxy (2. 6. 2014 6:08)