Autor | Zpráva | ||
---|---|---|---|
Petr-K Profil * |
#1 · Zasláno: 22. 11. 2011, 19:30:00
Zdravím,
zkouším na stránky vložit jQuery a využít jeho AJAXových funkcí. Spustit AJAX pomocí jQuery se mi podařilo a téměř funguje jak jsem potřeboval. Odešlu form, AJAX data zpracuje a zobrazí v připraveném divu. Ale narazil jsem na jeden problém... Konkrétně tímto způsobem aktualizuji ceník (HTML tabulka), která je na stránce vidět, ale pokud se chci v prohlížeči podívat na HTML kód tak div <div id="ajax-pricelist"></div> je prázdý? Čím to je? Tipuji, že problém bude v complete, ale nepřišel jsem na to jak to vyřešit: complete: function(data){ $("#ajax-pricelist").html(data.responseText); } Celý můj jQuery/AJAX: $("#form_new_def_currency").change(function(){ $("#ajax-pricelist").show('slow'); $.ajax({ type: "POST", url: 'pricelist_ajax.php', data: { object: $("#object").val(), currency: $("#currency").val() }, complete: function(data){ $("#ajax-pricelist").html(data.responseText); } }); return false; }); Ještě doplním, že z PHP funkce vracím data echem, snad je to tak OK. Díky moc za vaše rady. P. |
||
_es Profil |
#2 · Zasláno: 22. 11. 2011, 19:39:37
Petr-K:
„pokud se chci v prohlížeči podívat na HTML kód tak div <div id="ajax-pricelist"></div> je prázdý?“ Pretože ti prehliadač ukazuje pôvodný kód - závisí to aj od prehliadača, napríklad vo Firefoxe si môžeš zobraziť aj zmenu kódu cez „Zobraziť zdrojový kód výberu“ po vybratí nejakej časti stránky. |
||
Petr-K Profil * |
#3 · Zasláno: 22. 11. 2011, 19:46:37
Nevím jak to popsat...
Ale z nějakého důvodu mi to ovlivňujě další funkce tabulky, konkrétně editaci jednotlivých řádků v modálním okně (jQuery/FancyBox). Pokud tabulku nevygeneruji AJAXem, ale natvrdo připojím celý soubor "pricelist_ajax.php" přes include, tak odkazy na modání okna fungují, ale pokud ji do divu vygeneruji AJAXem, tak modální okno nefuguje a zobrazuje se jako nová stránka. Proto mě zajímá, jakým jiným způsobem to vypsat. |
||
_es Profil |
#4 · Zasláno: 22. 11. 2011, 19:57:35
Petr-K:
„Pokud tabulku nevygeneruji AJAXem, ale natvrdo připojím celý soubor "pricelist_ajax.php" přes include, tak odkazy na modání okna fungují, ale pokud ji do divu vygeneruji AJAXem, tak modální okno nefuguje a zobrazuje se jako nová stránka.“ modální okno z obsahu zobrazeného ajaxem Riešenie bude nejaké podobné, skús si pozrieť dokumentáciu k jQuery/FancyBox. |
||
Petr-K Profil * |
#5 · Zasláno: 22. 11. 2011, 20:47:31
_es:
Děkuji, za odkaz, alespoň vidím, že chyba není jen u mně. Z odkazu sice chápu co bych měl udělat, ale abych pravdu řekl, nevím jak... :( Dokumentaci k FancyBoxu jsem už četl xkrát, ale nenašel jsem tam nic jak volat modalní okno z obsahu generovaného AJAXem a nebo mám spíše hledat něco jineho, ale nevím co. Mohl bys mi prosím více poradit na co se zamšřit, konkrátně v mém případě? Toto je odkaz, který je součástí obsahu, jenž je generovaný AJAXem: <a href="pricelist_edit.php?id_object=13&id_season=1&def_language=cz" class="bt-edit iframe-pricelist-edit" title=""></a> A zde je ukázka zápisu jQuery/FancyBox: $("a.iframe-pricelist-edit").fancybox({ 'width' : 402, 'height' : 446, 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'titlePosition' : 'no', 'scrolling' : 'no', 'overlayOpacity': 0.7, 'overlayColor' : '#000000', 'type' : 'iframe' }); |
||
_es Profil |
#6 · Zasláno: 22. 11. 2011, 20:51:35 · Upravil/a: _es
Petr-K:
„A zde je ukázka zápisu jQuery/FancyBox“ No tak ten kód spustíš vtedy, keď budú tie elementy existovať, teda po načítaní obsahu cez AJAX. „vidím, že chyba není jen u mně“ Chyba je len u teba, nemôže predsa skript pracovať s elementmi, ktoré vzniknú až v budúcnosti. |
||
_es Profil |
#7 · Zasláno: 23. 11. 2011, 16:41:12 · Upravil/a: _es
Petr-K:
Nerieš svoj problém na viacerých miestach. Čomu na tom výklade nerozumieš? „jak volat modalní okno z obsahu generovaného AJAXem“ Ako ho generuješ? Či už na AJAX používaš jQuery alebo nie, môžeš využiť udalosť načítania obsahu (callback funkciu), v ktorej zavoláš na tom objekte pridaného odkazu metódu fancybox , podobne ako v tom kóde v [#5] - mouovovo riešenie je odlišné len v tom, že nevolá metódu fancybox , ale funkciu tb_init (odlišný plugin s odlišným API).
|
||
Časová prodleva: 12 let
|
0