Automatické generování URL parametrů v komponentách
- roman.campula
- Člen | 60
Zdravím,
na stránce mám vykreslenou komponentu, v ní je jeden formulář a nějaké
další ovládací prvky. Když z komponenty kliknu na tlačítko, pomocí
AJAXu se požadavek odešle na vygenerovanou URL. Řeším, jak sestavit tento
AJAX požadavek včetně správných parametrů.
Při použití
$.nette.ajax({
url: {link fillValues, key => "value"},
data: {
'evaluationFormControl-region': $("#frm-evaluationFormControl-form-region").val(),
}
});
je výsledná URL
?evaluationFormControl-key=value&do=evaluationFormControl-fillValues&evaluationFormControl-region=123
Ale toto není moc dobré. Potřeboval bych, aby se název komponenty, tedy „evaluationFormControl“ nějak v AJAXovém požadavku sám vygeneroval. Když totiž použiji jen
$.nette.ajax({
url: {link fillValues, key => "value"},
data: {
'region': $("#frm-evaluationFormControl-form-region").val(),
}
});
je výsledná URL
?evaluationFormControl-key=value&do=evaluationFormControl-fillValues®ion=123
Z tohoto však nejsem schopen získat hodnotu „123“ přes
$this->getParameter("region");
jelikož je to zanořeno v komponentě.
Stručně řečeno – jak v šabloně komponenty získat tu část, kterou Nette přidává jako ID ke všem prvkům formuláře v komponentě? (to už vůbec nemluvím o tom, že v části jQuery, kde získávám data z prvku formuláře, to musím mít také ručně napsáno)
- David Matějka
- Moderator | 6445
$this->getParameterId('region')
ti vrati kompletni nazev
parametru vcetne cesty. samotnou cestu ke komponente pak ziskas
pres $this->getUniqueId()
- roman.campula
- Člen | 60
Děkuji, vyzkouším. A v latte toho docílím také nebo si to musím předat takto?
$this->template->paramId = $this->getParameterId('region')