handle js
- 14113
- Člen | 33
Ahoj, resim malej problem. Udelal jsem si komponentu kterou pozivam na vice strankach a schvalne jsem ji osekal co nejvice. Takze jedine co ted umi je, ze po kliknuti na jeden obrazek se zavola js a ten pomoci jQuery posle $.get handleru. Problem je v tom ze nedokaze predat hodnotu. Zapnul jsem si fireBug a v konzole mi to ukazuje spravou url i s predanohou promenou ale handler ji neprijme a v debugu mi to vypise null. Nejspis to pouzivam dobre ptotoze kdyz jsem to neudelal v komponente tak mi to funguje. Jestli to nekdo pochopil , muzete mi pls. poradit? Predem diik
<?php
//js
$.get({link zobraz!}, { 'id': 1, 'pocet':1 } );
//url v bugZile
..../?do=nazevkomponenty-zobraz&id=1&pocet=1
// v komponente
public function handleZobraz($id,$pocet) {
debug::dump($id);
}
?>
Editoval 14113 (17. 11. 2009 18:07)
- Ondřej Mirtes
- Člen | 1536
A klasicky (jako odkaz v <a href="">) to funguje?
Tohle chování odpovídá, pokud přepíšeš konstruktor Control a nezavoláš jeho rodiče. Ale možná bude chyba někde uvnitř Javascriptu.
- Ola
- Člen | 385
Chyba bude pravděpodobně v názvu předávaného parametru – zkus místo
$.get({link zobraz!}, { 'id': 1, 'pocet':1 } );
dát
$.get({link zobraz!}, { 'nazevkomponenty-id': 1, 'nazevkomponenty-pocet':1 } );
možná by šlo i
$.get({link zobraz!}, { {$control->getUniqueId()} + '-id': 1, {$control->getUniqueId()} + '-pocet':1 } );
Editoval Ola (17. 11. 2009 19:46)
- David Grudl
- Nette Core | 8228
Možná ještě vhodnější je
$.get({link zobraz!}, { {$control->getParamId('id')}: 1, {$control->getParamId('pocet')}:1 } );
- Honza Kuchař
- Člen | 1662
@David:
{$control->getParamId('id')}
Davide, tak tohle je pro mě objev měsíce. :) Obcházel jsem to všelijak přes replace v javascriptu. :)