jak nejlépe na AJAX,onchange?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
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