var link={$presenter->link(„mySignal!“, anotherJSVariable)};

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

zdravim, delam neco takovehleho:

var anotherJSVariable = "test";
var link={$presenter->link("mySignal!", anotherJSVariable)};

potrebuji vytvorit v javascriptu odkaz na signal, ktery preda hodnotu promenne javascriptu. Jak na to?

ted jsem ztvoril neco takovehohle, co funguje, ale stve me, ze musim mit natvrdo nazev te predavane promenne, v tomto pripade value

function handleMySignal($value){}
var anotherJSVariable ="test";
var link={$presenter->link("mySignal!")};
alert(link+'&value='+anotherJSVariable );

Diky

Editoval simPod (26. 4. 2012 10:32)

nanuqcz
Člen | 822
+
0
-

Ahoj, a opravdu hodnotu té proměnné nemůžeš zjistit už při vykreslování?

Pokud ne, tak čisté řešení neznám. Ještě se tady kdysi na fóru kdysi objevil takovýhle nápad

<script>
var link = {$presenter->link("mySignal!", value => "blabla")};
alert(link.replace('blabla', anotherJSVariable));
</script>

ale ten je taky pěkně fuj.

Můžeš pls napsat, o jakou hodnotu se jedná, že ji nelze zjistit už při vykreslování šablony?

ViPEr*CZ*
Člen | 817
+
0
-

Jen ať nemusíme čekat. Například právě vybranou hodnotu ze selectboxu nezjistí už při vykreslování.

simPod
Člen | 383
+
0
-

viper to trefil, jedna se o input pole, to reseni od nanuq je takovy legracni :) ok diky.

a kdyz bych potreboval pres ajax do javascriptu vratit hodnotu z nejake funkce v presenteru? musim pres signal a snippet? nebo jde nejak naprimo zavolat funkci? diky

nanuqcz
Člen | 822
+
0
-

Například právě vybranou hodnotu ze selectboxu nezjistí už při vykreslování.

Pro odeslání hodnot z formu ale není potřeba vytvářet link, ne?

jQuery('#myForm').submit();

a kdyz bych potreboval pres ajax do javascriptu vratit hodnotu z nejake funkce v presenteru? musim pres signal a snippet? nebo jde nejak naprimo zavolat funkci?

Pokud potřebuješ jen poslat javascriptu nějaké data, narvi je do payload ;-)

uestla
Backer | 799
+
0
-

Používáš-li jQuery, dají se extra parametry přidat jako volitelný druhý parametr:

<script>
$.getJSON({plink mySignal!}, {
	'selected': $('#select').val()
});
</script>
simPod
Člen | 383
+
0
-

super, diky vsem, hned mam cistci kod