handle js

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
14113
Člen | 33
+
0
-

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)

14113
Člen | 33
+
0
-

Jednoduseji receno, jak predat komponente hodnotu pomoci js ?

Ondřej Mirtes
Člen | 1536
+
0
-

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.

14113
Člen | 33
+
0
-

ano <a href… funguje. A v komponente jsem to zkousel prepsat konstruktor a nepomohlo…?
a v js snad chyba nebude, nic jineho tam nemam tez jsem napsal nahore..

Editoval 14113 (17. 11. 2009 19:44)

Ola
Člen | 385
+
0
-

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)

14113
Člen | 33
+
0
-

Jo! mel jsi pravdu, nenapsal jsem pred promenou nazevkomponenty-
velmi dekuji!

David Grudl
Nette Core | 8228
+
0
-

Možná ještě vhodnější je

$.get({link zobraz!}, { {$control->getParamId('id')}: 1, {$control->getParamId('pocet')}:1 } );
Honza Kuchař
Člen | 1662
+
0
-

@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. :)

Honza Kuchař
Člen | 1662
+
0
-

Ještě tak přemýšlím, neudělat to jako makro?

David Grudl
Nette Core | 8228
+
0
-

To je dobrý nápad