Portál AbcLinuxu, 6. května 2025 20:19

Dotaz: jquery $.post

4.5.2014 00:42 pokus
jquery $.post
Přečteno: 402×
Odpovědět | Admin
Zdravim prevzal sem jedny webovky a potrebuju do nich dodelat ziskani dat z db bez reloadovani stranek. Situace je nasledujici jQuery 1.9.2 server apache s php. Posilam data

$("body).on('click', 'button#btn', function() {
$.post("./action-scripts/saveMenuItem.php", str, function () {
     alert("odelsano");
});

Kde str promena je string naplneny prez $("#form-reg").serialize(). Po kliknuti na button se odeslou data, ale dojdenasledne k reloadu stranky tak, ze se do stavajiciho linku napr.http://nekde.org/edit=1 pridaji data, ktera se posilaji serveru ze strany klienta - takze http://nekde.org/id=5&menu6 coz pochopitelne nechci. Nechapu jak je mozne ze dochazi k reloadovani resp. presmerovani. V konzole firebugu nic neni na serveru taky zadne errory. Co delam spatne?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 4.5.2014 01:38 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: jquery $.post
Odpovědět | | Sbalit | Link | Blokovat | Admin
No protože ten formulář má normálně nastavenou action a tak se odešle. jQuery neznám, ale normálně v JS by to asi šlo disablovat pomocí onclick="return(false)". Současně když se to udělá chytře to bude fungovat i klientům, kteří z nějakého důvodu nechtějí nebo nemohou spouštět tvé javascripty.
4.5.2014 07:28 pokus
Rozbalit Rozbalit vše Re: jquery $.post
Jezis to ta pokrocila hodina. Vzdyt je to jasne. Thx.
Josef Kufner avatar 4.5.2014 12:09 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: jquery $.post
Tak, tak. Jen malá drobnost: return false je deprecated, použij event.preventDefault.
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 5.5.2014 10:07 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: jquery $.post
Mas pro toto tvrzeni nejaky zdroj? V dokumentaci se pise:
Returning false from an event handler will automatically call event.stopPropagation() and event.preventDefault()
Vicemene to same napsal Resig uz v roce 2009, tak jestli se neco zmenilo, docela by me to zajimalo..
Don't panic!
Josef Kufner avatar 5.5.2014 11:24 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: jquery $.post
Prohlížeč mi to tvrdí v chybové konzoli. To je asi tak vše. Rozhodně se nemusíš obávat, že by return false přestalo fungovat.
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 5.5.2014 12:12 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: jquery $.post
jestli myslis hlasku "event.returnValue is deprecated. Please use the standard event.preventDefault() instead.", kterou zobrazuje chrome/ium, tak ta se vztahuje na samotnou implementaci jQuery, nikoliv na to jak je psany handler. At uz mam v handleru na konci return false nebo event.preventDefault(), tato hlaska se zobrazi..
Don't panic!
Tarmaq avatar 5.5.2014 10:15 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: jquery $.post
ano je to tak jak pises, jen bych se vyhnul zadavani onclick handleru primo v DOMu.
Staci false vratit na konci handleru:
$("body).on('click', 'button#btn', function() {
  $.post("./action-scripts/saveMenuItem.php", str, function () {
   alert("odelsano");
  });
  return false;
})
Don't panic!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.