jak nejlépe na AJAX,onchange?

yrow
Člen | 12
+
0
-

Zdravím, jednoduchý AJAX na click mi je celkem jasný pomocí signálu! <a n:href=„changeVariable! $anyVariable[‚id‘]“ class=„ajax“>
, to zpracuje stejný presenter v handle metodě.

Ale co třeba checkboxy a onchange, nebo selecty onchange; jasně už vím že si jde napsat ve script bloku vlastní jquery a v handlu zpracovat data pomocí getparameters (post), ale jdou třeba tyhle checkboxy na change v šabloně napsat taky nějak pěkně se signálem!, aniž bych musel nějak drasticky editovat základnní nette js nebo nějaké nette třídy ?
dík)

Lukeluha
Člen | 130
+
0
-

Pokud nechceš dynamické skrývání prvků ve formuláři, tak si budeš muset napsat svůj vlastní skript (je to na 2, 3 řádky). Můžeš k tomu využít stále stejnou knihovnu nette.ajax.js a snippety.

Oli
Člen | 1215
+
+1
-

Nic editovat nemusíš, natož drasticky. To co navrhuješ ty je špatně. Signály slouží ke generování odkazů a nepředpokládám, že chceš narvat odkaz do selectu nebo checkboxu…

Jestli nepoužíváš nette.ajax.js, tak začni :-)
To co cheš udělat, jde úplně jednoduše:

$( "#muj-select-box" ).change(function() {
	$.nette.ajax({
		type: "GET",
		url: {link changeVariable!},
		data: {value: $(this).val()}
	});
});
akadlec
Člen | 1326
+
0
-

Tohle řešení tě nutí prasit JS do šablony a mě osobně se to vůbec nelíbí. Osobně bych raději tomu selectu přidal data attribut třeba data-url nebo data-load kde by byla ta url adresa přes kterou se to má zpracovat a v js souboru to pak dořešit.

Oli
Člen | 1215
+
0
-

@akadlec Jasně, máš stoprocentní pravdu. Tak jsem to měl prvně napsaný. Ale pak jsem si uvědomil, že pokládá první dotaz. Podle mě je lepší ukázat tuhle cestu a sám časem dojde k tomu, že je lepší to dát do nějakýho main.js do

$.nette.ext({
	load: function() {
		 // ...
	}
});

a url si předat přes data-url nebo něco podobnýho. A nakonec dojde k WebLoaderu. Ale myslíš, že někdo, kdo evidentně začíná s Nette chce perfektní řešení na kterým se tejden zahrabe? ;-)

Btw. Pokud s data atributama umí, tak to pro něj nebude problém udělat. Pokud neumí, tak to je v tuhle chvíli (podle mě) pro něj zbytečná komplikace…

yrow
Člen | 12
+
0
-

no právě o to mi šlo, abych do šablony ten nette.ajax script (i když jen na pár řádků) psát nemusel, takže poupravit nebo rozšířit nette ajax aby tyhle elementy na change uměl zpracovat, dík

RSS tématu Téma zavřeno