Diskuze: .net core web app - klik na button bez reloadování
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, JavaScriptu se nevyhneš. Rovnou bych doporučil rozšířenou knihovnu jQuery, která je na tyto běžné věci mnohem přátelštější.
Pokud to máš přes formulář, tak koukni sem: "https://api.jquery.com/submit/ ":https://api.jquery.com/submit/
Ty vlastně přes tento submit zavoláš úplně stejný view jako při klasickém kliknutí, ale důležitá metoda
preventDefault()
zajistí, že se nebude reloadovat celá stránka.
Z tvého .net backendu si potom jako výsledek pošleš libovolná data a pomocí těch třeba upravíš vizuální podobu košíku.
V tvém podání to zní tak jednodušše, ale já se s tím strašně
peru:
První fuška pro mě bylo vůbec přimět JavaScript něco dělat, pak reagovat
na klepnutí na submit... no nicméně teď už tuhle část mám a ušpěšně
dokážu reagovat na submit bez reloadu.
Takže co teď potřebuju dál, je z toho JavaScriptu zavolat .net metodu pro
přidání Itemu do kušíku. Provedl jsem menší výzkum a můj momentální
dojem je, že pokud opravdu nechci reloadovat stránku, ale zároveň budu
chtít odeslat data na server, nebude mi stačit JavaScript, ale budu
potřebovat AJAX. Kdybych se mýlil a přes AJAX by to bylo zbytečně
komplikované (případně zastaralé, některé tutoriály, co jsem našel jsou
z roku 2008), tak mě případně oprav, nicméně v tuhle chvíli si o téhle
technologii jdu zjišťovat víc. To co teď potřebuji snad nebude zas až tak
složité a budou mi stačit nějaké základy.
Jo a samozřejmě děkuju za nasměrování. Po delší době jsem s tím
konečně aspoň trochu pohnul 
Aha, já nevěděl, jak moc/málo mám radit...
Samotný AJAX neřeš, to je pouze označení pro asynchronní JavaScript věci. Tedy to, co se přes JS dělá běžně. Níže příklad kódu z jedné mé webové appky, kde přes AJAX mažu data a předtím se ptám přes modal dialog, jestli opravdu smazat.:
$('form#modal-delete-confirm-form').submit(function (e) {
e.preventDefault();
var form = $(this);
let url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(),
success: function (data) {
console.log(data);
$('#delete-confirmation').modal('hide');
}
});
});
Tímto vlasně jQuery řeknu, aby reagovalo, když je formulář submittnutý na server, což znamená že uživatel stiskl Submit tlačítko. preventDefault zakáže tradiční reload stránky. Pomocí jQuery získám data z formuláře a taky url adresu, na kterou to budu posílat. To je .net metoda v tvém případě, kam se to pošle při tradičním reloadnutí stránky (to jsme teď zakázali přes preventDefault).
Success parametr je potom metoda, co se vykoná, když se to celé povede.
Tady data loguju do konzole. Je to klasický JSON, který si posílám z webové
appky, takže podle toho bys přes jQuery upravil obsah košíku uživateli a to
je celé 
Lepší takto? 
Zpětně ještě jedno děkuji, takhle mi to funguje pěkně 
Zobrazeno 5 zpráv z 5.