Jak poslat JS var do handleru?

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

Zdravím a prosím o radu,

jak správně pošlu proměnou, z JS do handleru?

"contextmenu": {
		    'items': {
			deleteItem: {
			    label: "Odebrat z hlídání celý objekt se všemi jednotkami",
			    icon: "glyphicon glyphicon-remove error",
			    action: function () {

				var id = $('#jstree').jstree(true).get_selected('full', true)[0].parent;
				if(id === "#") {
				    var id =  $('#jstree').jstree(true).get_selected();
				}

				$.get({plink removeAllFromWatch! 'kod' => SEM POTREBUJI TO id !!});
			    }
			}
		    }
		},
David Matějka
Moderator | 6445
+
+1
-

tohle se resi bud tak, ze vygenerujes link bez toho parametru kod a ten predas z JS normalne do GET parametru.

Druhou moznosti (vhodno zejmena pokud na to mas routu, kde je ten parametr v masce) je vygenerovat link s nejakym placeholderem, ktery nahradis

CZechBoY
Člen | 3608
+
0
-

Ja si parametry predavam pres data nastaveni v jquery.

MW
Člen | 626
+
0
-

Ted strilim, ale myslis něco jako napr.

var url = {plink removeAllFromWatch!} + "&kod=" + id;
$.get(url);

Omlouvam se, s JS vicemene zacinam :)

Editoval MW (6. 4. 2016 20:36)

Oli
Člen | 1215
+
+2
-

To je ta druhá varianta. Pokud pro to nemáš pěknou routu. Pokud by jsi měl pěknou routu, tak by to mohlo vypadat i jako {plink removeAllFromWatch!} + "/123".

A přes data by to potom vypadalo takhle:

$.nette.ajax({
  method: "GET",
  url: {plink removeAllFromWatch!},
  data: { kod: id }
});

Tam to má výhodu, že pokud změníš URL, tak ti to bude fungovat pořád.

MW
Člen | 626
+
0
-

Vyzkousim.. moc diky!

MW
Člen | 626
+
0
-

Tak ve zdrojáku to je escapované, ale vola to správně..
Jen dodám, že je potřeba použít traditional : true, jinak to do url dává &kod[]=… místo &kod=…

$.nette.ajax({
traditional : true,
method: "GET",
url: {link removeAllFromWatch!},
data: { kod: id}
});

Díky!