Autor Zpráva
Petr-K
Profil *
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
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 *
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
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 *
_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&amp;id_season=1&amp;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
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
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).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0