predani hodnoty z presenteru do „nette.ajax“

vlkodlak
Člen | 160
+
0
-

zdravim,

pokoušim se předat vytvořena data z presenteru do nette.ajaxu, stránku spustim, akci vytvořim … vše proběhne, ale do console logu má hodnota „new value“ se nevypiše

snipetty použit nelze, prože je třeba navazaní další javascriptové aktivity :-(

final class HomepagePresenter extends BasePresenter
{
...
   public function handleMyaction()
   {
		$this->payload->myvalue= 'new item';
	}
...
}

a pomoci main.js bych rád tuto hodnotu zachytil a vypsal napřiklad do console

   $.nette.init();

   $.nette.ajax({
      success: function (payload) {
 		 console.log(payload.myvalue)
      }
   });

Editoval vlkodlak (9. 3. 2022 22:21)

Pepino
Člen | 249
+
+1
-

V tom JS musis ten signal zavolat.

vlkodlak
Člen | 160
+
0
-

@Pepino dekuji pomohlo

mám jeste jednu otázku lze, prosím, odlišit zpracovani dvou signalu?

například: budu mit tyto dvě voláni

final class HomepagePresenter extends BasePresenter
{
...
   public function handleMyaction()
   {
		$this->payload->myvalue= 'new item';
	}
   public function handleMyaction2()
   {
		$this->payload->myvalue= 'nová položka';
	}
...
}

a chci mít pro každy jine zpracování, mám vymyšlet složité vetveni pomoci podminek nebo existuje možnost vše řešit již na urovní $.nette.ext? … protože zatím mi to zachyti oba dva signaly a zpracuje toto

...
   $.nette.ext({
      success: function (payload) {
	    console.log(payload.myvalue);
      }
   });
...
Pepino
Člen | 249
+
+1
-

U použití $.nette.ext to jde řešit vypínání jednotlivých rozšíření při volání ajaxového požadavku.

  $.nette.ext('akce1', {
      success: function (payload) {
	    console.log(payload.myvalue);
      }
   });

  $.nette.ext('akce2', {
      success: function (payload) {
	    console.log(payload.myvalue);
      }
   });

A potom při volání:

$.nette.ajax({
	url: ...,
	off: ['akce1']
});
vlkodlak
Člen | 160
+
0
-

myslim, že pro tento maly projekt použijí podminovaciho rozhodování a ve vetví before zjistim co mi nette.ext volalo pomoci settings.nette.ui.className nebo settings.nette.ui.id

@Pepino ještě jednou děkuji

MajklNajt
Člen | 471
+
+1
-

@vlkodlak takisto si môžeš do payloadu poslať ďalšiu premennú, ktorú použiješ potom v if(payload.premenna == "a") {...}

vlkodlak
Člen | 160
+
0
-

MajklNajt napsal(a):

@vlkodlak takisto si môžeš do payloadu poslať ďalšiu premennú, ktorú použiješ potom v if(payload.premenna == "a") {...}

děkuji za tip, ano, je to možná jednodušší, ale s tou třídou nebo id mi to přijde „čistči“ rešení byt po čase, když kód budu upravovat a upravím názvy, již vidím jak sám sebe budu proklínat po několika probdělých nocích ;-)

Pepino
Člen | 249
+
+2
-

Nebo muzes v tom payloadu vracet primo nazev js funkce co se ma vykonat.