dependent selectBox neprovede callback
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- spiider
- Člen | 162
Zdravím mám problém a vím že se tady řešilo mnohokrát ohledně této
komponenty ale nic mi nepomohlo.
Mám form:
$form->addSelect('sectors','Sectors', $this->model->getSectors())
->setPrompt('Select...');
$form->addDependentSelectBox("subsector", "Subsector", $form["sectors"], array($this, "getValuesSubsectors"));
if ($this->presenter->isAjax())
$form["subsector"]->addOnSubmitCallback(array($this, "invalidateControl"), "snippetSector");
k tomu metodu pro callback
public function getValuesSubsectors($form) {
return $this->model->getSubSectors($form['sectors']->getValue());
}
a v šabloně
<snippet snippetSector>
{control addForm}
</snippet>
a pokaždé když vyberu z prvního selectu mi to vůbec nevstoupí do
getValuesSubsectors
Neporadíte pls.
Díky
Editoval spiider (31. 1. 2012 16:50)
- spiider
- Člen | 162
Zkoušel jsem podle návodu napsat vlastní makro ainclude takto:
$latte = new Nette\Latte\Engine();
$templ = new \Nette\Templating\FileTemplate();
$templ->setCacheStorage(new \Nette\Caching\Storages\FileStorage(Nette\Environment::getVariable('tempDir')));
$templ->presenter = $this;
$templ->user = $this->getUser();
$templ->baseUri = $templ->baseUrl = rtrim(Nette\Environment::getHttpRequest()->getUrl()->getBaseUrl(), '/');
$templ->registerFilter($latte);
$templ->registerHelperLoader('TemplateHelpers::loader');
$this->template->it = $templ;
$macroSet = new Nette\Latte\Macros\MacroSet($latte->parser);
$macroSet->addMacro(
'ainclude', '
$path = pathinfo($presenter->template->getFile());
$path = $path["dirname"] . "/" . %node.word;
$it->setFile($path);
$it->setParams(%node.array);
$it->render();
'
);
$this->template->registerFilter($latte);
ale hlásí mi to že makro ainclude nezná. Nevíte kde by mohla být chyba?
- spiider
- Člen | 162
Tak nakonec sem to rozchodil ani nevím jak teda. Kdyžtak přikládám
zdroják kdyby se to někomu hodilo
Šablona:
{snippet formSnippet}
{control addAlertForm}
{/snippet}
A form:
$form->addSelect("sectors_id", "Sectors", $this->model->getSectors());
$form->addDependentSelectBox("subsectors_id", "Subsector", $form["sectors_id"], callback($this, "getValuesSubSector"));
if ($this->presenter->isAjax())
$form["subsectors_id"]->addOnSubmitCallback(callback($this, "invalidateControl"), "formSnippet");
$form->addSubmit("save", "Save")
->onClick[] = callback($this, "addAlert");
return $form;
A metoda pro subselect
public function getValuesSubSector($form) {
return $this->model->getSubSectors($form['sectors_id']->getValue());
}
Takhle mi to funguje ani nevím kde byla teda předtím chyba