| 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: 14 let
|
|||
0