Náhrada iframe něčím jiným – HTML / XHTML – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Náhrada iframe něčím jiným – HTML / XHTML – Fórum – Programujte.comNáhrada iframe něčím jiným – HTML / XHTML – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Kall_Ell0
Návštěvník
6. 10. 2011   #1
-
0
-

Ahoj všem. Mám databázi kontaktů. Jednoduchou stránku,kde se mě zobrazí seznam kontaktů. Informací o každém kontaktu je více, navíc zde mám další propojenou tabulku s poznámkami k danému kontaktu. Já by jsem chtěl udělat seznam(nějaký jednoduchý) úzká tabulka vedle které(vpravo), by bylo místo detail kontaktu a popřípadě s malou podtabulkou s poznámkami vztahující se k vybranému kontaktu. A teď je otázka jak nato. Primárně je na stránce 50 kontaktů. Vím jak to udělat pomocí ccs, ale to se mě zdá náročné. Jestliže bude mít každý z padesáti kontaktů deset a více poznámek, tak to bude docela hodně dat na načtení z db. Já chci, aby se detail a seznam poznámek načetl až ve chvíli, kdy kontakt vyberu v seznamu vlevo. Ale nechci, aby se reloadovala celá stránka, jenom to místo s tím detailem kontaktu. Napadlo mě použít iframe, ale kde co čtu, tak to nikde nedoporučují. Jak by jste to řešili? Předem se přiznám, že javascript neovládám, ale řešení javascriptem se nebráním. Jen budu potřebovat trochu více informací, pokud by bylo řešení javascriptem.

Nahlásit jako SPAM
IP: 80.87.189.–
Řešení
Peppy0
Stálý člen
7. 10. 2011   #2
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Čo na to viac povedať, než len: AJAX, AJAX, AJAX :)

Nahlásit jako SPAM
IP: 85.135.191.–
Qt, QML, C++
Kall_Ell0
Návštěvník
7. 10. 2011   #3
-
0
-

#2 null_while
Proměnou $_GET znám velice dobře, tak podobně to mám zpracované, ale tahle verze po kliknutí reloaduje stránky, což nechci.

Nahlásit jako SPAM
IP: 80.87.189.–
Kall_Ell0
Návštěvník
7. 10. 2011   #4
-
0
-

#3 Peppy
No asi máš pravdu. Jenže já neovládám javascript. Teda sem tam nějakej jednoduchej script jsem použil, ale nic složitějšího. Mohl by si mě poradit trošku více? Celej del lítám po netu a sháním nějaké info, ale nějaký přehledný návod na AJAX jsem nenašel. Něco málo jsem našel o jQuery. Jen tak pro upřesnění, jaký je rozdíl mezi jQuery a AJAXEM?

Nahlásit jako SPAM
IP: 80.87.189.–
Peppy0
Stálý člen
7. 10. 2011   #5
-
0
-

jQuery je originálne knižnica na efekty ale už obsahuje aj funkcie pre prácu s AJAXom. AJAX je vlastne extra prepojenie cez HTTP protokol. Pomocou browsera posielaš HTTP (POST/GET) požiadavku na nejakú adresu. To znamená, že keď máš nejaké tlačidlo a na ňom nabindovaný onclick event, tak po kliknutí browser pošle požiadavok napr. HTTP GET  

http://nieco.sk/gdata.php?actionid=100

. Daný obsah, ktorý vygeneruje serverový skript sa pošle naspäť browseru, ten to predá JavaScriptu (väčšinou formát JSON/XML)  a ten už si pomocou efektov pekne prekreslí okno podľa dát zaslaných z tej adresy. Samozrejme, je nutné aby v tom browseri bežal JavaScript.

Nahlásit jako SPAM
IP: 85.135.191.–
Qt, QML, C++
cherryboss
~ Anonymní uživatel
1 příspěvek
7. 10. 2011   #6
-
0
-

Udělej to jednoduše přes jQuery - tak jak radí Peppy. Každému odkazu dej nějakou třídu např. ajax. Pak dej tomu divu, do kterého chceš načítat ty poznámky nějaké id např. poznamky.

Pak si napíšeš jednoduchý skript, kde nabinduješ event onclick na ten odkaz - ten povede normálně tam, jak to máš teď - s refreshem. Ty ale pomocí js zakážeš defaultní funkci toho odkazu. A do divu "poznamky" načteš znovu php soubor, ve kterém se ti načítají a zobrazují ty poznámky.

Skript na ten handle kliknutí na odkaz by mohl vypadat takto:

<script type="text/javascript">
$(document).ready(function(){
	$(".ajax").live("click", function(event) {
		event.PreventDefault(); //zakáže defaultní funkci kliknutí na odkaz
		$("#poznamky").load($(this).attr("href")); //načte do toho divu soubor php s parametry v odkaze
	});
});
</script>

Tímto kódem zajistíš funkčnost i bez zapnutého JS (sice to dneska už má málokdo vypnuté - ale jistota je jistota). Kdyžtak můžeš přidat i nějaký efekt - třeba, že zmizne obsah toho divu, objeví se nějaký animovaný gif (na pozadí se načítají data), a jak budou data načteny - zmizne gif a odjeví se obsah. Projdi si doc na www.jquery.com. Snad jsem to napsal srozumitelně :)

PS: samozřejmně musíš našíst to jQuery ještě před tím kódem :)

Nahlásit jako SPAM
IP: 62.245.110.–
CZechBoY+4
Věrný člen
8. 10. 2011   #7
-
0
-

#2 null_while
všechny klíče v poli $_GET jsou typu STRING, takže tvůj if s is_int by neměl nikdy projít ;)

Nahlásit jako SPAM
IP: 213.192.10.–
Kall_Ell0
Návštěvník
8. 10. 2011   #8
-
0
-

Takže jsem si koupil tuhle knížku:

http://knihy.cpress.cz/ajax.html

No snad jsem koupil dobře. Teď už si ji jen přečíst a použít zmíněný ajax. Dík za rady, v rozhodování, kterou knížku vzít jste mě taky nakoply, měl jsem v ruce i tu jQuery. Tu si asi taky koupím, ale teď potřebuji ten ajax. Dík pánové.

Nahlásit jako SPAM
IP: 80.87.189.–
Peppy0
Stálý člen
8. 10. 2011   #9
-
0
-

No, ako chceš. Príde mi to zbytočné, kupovať na tak jednoduchú technológiu knihu...Ale je to len a le nna tebe :)

Nahlásit jako SPAM
IP: 85.135.165.–
Qt, QML, C++
Kall_Ell0
Návštěvník
8. 10. 2011   #10
-
0
-

Já o tom nic nevím, ať jsem hledal co jsem hledal, tak moc návodů na netu není(v češtině) Jen pár ukázek, ale nic moc. Ta knížka stála pár korun, takže mě to zas tak nebolelo a snad pomůže.  

Nahlásit jako SPAM
IP: 80.87.189.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý