jak nejlépe na AJAX,onchange?
- yrow
- Člen | 12
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
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
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()}
});
});
- Oli
- Člen | 1215
@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…