Naja – volani handleru (prepis z nette.ajax.js)

TMScz
Člen | 24
+
0
-

Ahoj, zkousim misto nette.ajax.js dat do webu Naju a narazil jsem na jeden zadrhel… treba se zeptam uplne mimo, ale jaka je alternativa zapisu volani snippetu ve fci, kterou mam na nejake onChange udalosti, v Naje?

Funkcni na nette.ajax.js

$.nette.ajax({
  type: 'GET',
  url: {link getDetail!},
  data: {
    'id': id
  }

V Naje je to predpokladam pomoci makeRequest(), ale nevim presne jak ten handle zavolat… poradi pls nekdo?

zkousel jsem neco jako

naja.makeRequest('GET', 'link getDetail!', id);

ale vraci to vzdycky 500, nebo ze na to nejsou routy apod…, takze hadam ze tudy cesta nevede

David Matějka
Moderator | 6445
+
+4
-

no to latte makro na vygenerovani linku tam musis nechat :)

naja.makeRequest('GET', {link getDetail!}, {
	id: id
});
TMScz
Člen | 24
+
0
-

jaj, tak to uz je fakt slepota tohle:) Diky :)

piskotek
Člen | 35
+
0
-

Ahoj, potřeboval bych poradit, mám asi stejný problém jako kolega, akorát mi to pořád nejde a dává mi to chybu „No route for HTTP request.“

$('#frm-editForm-country').change(function () {
var country = $(this).val();
naja.makeRequest('POST', '{link nacistMesta!}', {
					itemID: country
				});

			});
dakur
Člen | 493
+
0
-

@piskotek {link nacistMesta!} je makro, které zpracovává Latte na serveru, ne řetězec v javascriptu zpracovávaný u klienta. Nesmí být tedy uzavřený v apostrofech.

David Matějka
Moderator | 6445
+
+2
-

spíše bych řekl, že bude problém, že tento javascript nebude vůbec v latte šabloně, ale v externím javascriptu. v takovém případě je možný třeba využít data- html atributy a z JS hodnoty pak přečíst

Jan Kostohryz
Člen | 14
+
0
-

David Matějka napsal(a):

spíše bych řekl, že bude problém, že tento javascript nebude vůbec v latte šabloně, ale v externím javascriptu. v takovém případě je možný třeba využít data- html atributy a z JS hodnoty pak přečíst

Zdravím,
jak se tento javascript se šablony dá přenést do externího javascriptu?

Polki
Člen | 553
+
+1
-

Latte:

...
{form editForm}
	...
	{input country, data-url => $control->link('nacistMesta!')} // případně $presenter->link('nacistMesta!'), pokud odkazujeme na presenter ?
	...
{/form}
...

extern.js:

$('#frm-editForm-country').change(function () {
	let country = $(this).val();
	naja.makeRequest(
		'POST',
		$('#frm-editForm-country').data('url'),
		{
			itemID: country
		}
	);
});