selectBox s AJAX – problém s presenterem

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

Cao lidi,

vytvořil jsem si formulář s AJAXem. Když ho dám do HomepagePresenteru tak se AJAX provede správně…

<script>
$.get("?do=loadData", {"value": value, "phase": phase}, function(data) {
	$('#frmsearchBar-brand').parent().html(data);
});
</script>

A teď příjde ten problém. Když ho dám do jinýho presenteru, tak nevím, jak nalinkovat handler (?do=loadData) tak, aby se bral z aktivního presenteru a ne z Homepage. Když jsem zkusil dát
„?presenter=Neco&do=loadData“, tak mě to při provedení AJAXu přesměruje na novou, úplně prázdnou stránku.

Víte někdo co s tím?

Ondřej Mirtes
Člen | 1536
+
0
-

Zkus:

$.get({link loadData!}, {"value": value, "phase": phase}, function(data) {
        $('#frmsearchBar-brand').parent().html(data);
});

Volat signály na jiném Presenteru než na tom aktuálním ani nejde.

diablos
Člen | 36
+
0
-

Píše to tohle:

missing : after property id
[Break on this error] $.get({link loadData!}, …alue, „phase“: phase}, function(data) {\n

Mno zkoušel jsem dát ten signál loadData na homepage a z homepage se to provedlo. Jinak řečeno provedl se příkaz echo co jsem měl v tom handleru, takže to jde, což je divný.

BTW děkuju za zájem o pomoc.

lucass
Člen | 89
+
0
-

Mno zkoušel jsem dát ten signál loadData na homepage a z homepage se to provedlo.

Co když dáš ten signál do BasePresenteru, tj. do předka všech ostatních presenterů? Pak by to mělo fungovat kdekoliv, ne?

Editoval lucass (17. 11. 2009 11:21)

diablos
Člen | 36
+
0
-

Tak to funguje, ale když v tom druhým presenteru (ne v HomepagePresenteru) změním select na nějakou hodnotu načte se úplně bílá stránka a v FireBugu je tohle:

<script>

<br />
<b>Fatal error</b>:  Call to a member function setItems() on a non-object in <b>
<title>Fatal Error</title><!-- Call to a member function setItems() on a non-object -->
</script>

Tím setItemem naplním datama druhej selectBox. Tudíš nemůže najít ten požadovanej formulář a asi je to logický, když se zobrazí úplně bílá stránka :-)

Jinak handler vypadá takto:

<script>

	$bazBar = $this->template->bazBar;

	$bazBar['countyId']->setItems(array("huh" => "bla"));
	echo $bazBar['countyId']->getControl();

</script>
diablos
Člen | 36
+
0
-

Problém vyřešen… děkuji za rady. Rada s basePresenterem pomohla!