Autor | Zpráva | ||
---|---|---|---|
peppo Profil * |
#1 · Zasláno: 4. 10. 2008, 13:14:30
Zdravim, mám napsaný jednoduchý chat pomocí php, celý je obalen v divu s názvem chat.
Po odeslání zprávy bych potřeboval, aby se právě tento div aktualizoval, aniž bych musel aktualizovat celou stránku a zároveň bych potřeboval nastavit script, který automaticky tento div obnoví např. po 30s, myslíte že by bylo něco podobného možné, aniž bych musel použít framy? Díky |
||
Jimmy Hayek Profil |
#2 · Zasláno: 4. 10. 2008, 13:22:58
peppo
hledej AJAX |
||
peppo Profil * |
#3 · Zasláno: 4. 10. 2008, 14:06:28
našel jsem tento skript:
<script type="text/javascript"> function Ajax(){ var xmlHttp; try{ xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari } catch (e){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("No AJAX!?"); return false; } } } xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText ; setTimeout('Ajax()',10000); } } xmlHttp.open("GET","http://www.example.com/the_page_that_contains_the_ div_content",true); xmlHttp.send(null); } window.onload=function(){ setTimeout('Ajax()',10000); } </script> ovšem ten mi do divu otevře celou stránku, chápu že to dělá příkaz: xmlHttp.open, jenže nevim jak to upravit... |
||
Str4wberry Profil |
#4 · Zasláno: 4. 10. 2008, 16:24:58
Nastavte mu jako druhý parametr adresu skriptu, který získává obsah, který se má zobrazit ve měnícím <div>u.
|
||
peppo Profil * |
#5 · Zasláno: 5. 10. 2008, 15:21:18
Tento ajax kód a php script spolu s divem zobrazující chat jsou v jednom souboru, tudíž bych potřeboval upravit
xmlHttp.open("GET","http://www.example.com/the_page_that_contains_the_ div_content",true); na něco takového: xmlHttp.refresh(true); samozřejmě, aby to fungovalo |
||
peppo Profil * |
#6 · Zasláno: 6. 10. 2008, 22:10:24
můžete mi prosím někdo pomoci?
|
||
Chamurappi Profil |
#7 · Zasláno: 6. 10. 2008, 22:19:24
Reaguji na peppo:
Jestli potřebuješ stáhnout data z adresy odvozené od té, na které je aktuální stránka, použij vlastnost „location.href“. xmlHttp.open("GET", location.href + "?parametr=hodnota", true); |
||
Časová prodleva: 12 dní
|
|||
peppo Profil * |
#8 · Zasláno: 18. 10. 2008, 10:46:55
vyřešil jsem to tak, že jsem php script s obalujícím divem do souboru chat.php
a na stránce index.php jsem napsal: include_once("./chat.php"); refresh jsem nastavil na 10s, ale teď potřebuji, aby se div obnovil i po stisku tlačítka pro odeslání příspěvku, můžete mi poradit? děkuji |
||
Str4wberry Profil |
#9 · Zasláno: 18. 10. 2008, 12:06:23
Tak při odeslání (třeba onsubmit) zavoláš tu samou funkci jako po deseti sekundách, co není jasné?
|
||
peppo Profil * |
#10 · Zasláno: 18. 10. 2008, 12:28:27
Str4wberry
no jenže když tlačítku tu funkci přiřadím, tak se chat stejně obnoví až po 10s, je potřeba aktuální skript nějak upravit nebo vytvořit novou funkci? |
||
Str4wberry Profil |
#11 · Zasláno: 18. 10. 2008, 12:31:54
Tu funkci voláš zřejmě v nějakém intervalu, tak ji zavolej při odeslání.
|
||
peppo Profil * |
#12 · Zasláno: 18. 10. 2008, 12:46:01
Str4wberry
Děkuji, už to funguje... |
||
peppo Profil * |
#13 · Zasláno: 18. 10. 2008, 13:24:17
ještě bych se chtěl zeptat na jednu věc, která se tohoto skriptu týče, bylo by možné zbývající čas do obnovení chatu v tomto divu nějak zobrazovat? Např.: Obnovení proběhne za 10s,poté 9s atd
Díky |
||
Časová prodleva: 3 dny
|
|||
peppo Profil * |
#14 · Zasláno: 21. 10. 2008, 17:58:31
pomůžete mi, prosím?
|
||
Časová prodleva: 5 dní
|
|||
Noglues Profil |
#15 · Zasláno: 26. 10. 2008, 16:57:58
peppo
To už se tu jednou probíralo:Odkaz |
||
Johnyy Profil * |
#16 · Zasláno: 27. 10. 2008, 09:48:03
Noglues
Díky to je přesně ono, ale jak mám zajistit, aby se po odpočtu něco provedlo (to už mám), ale zaroveň odpočet začal znovu? zkusil jsem: } else { refreshChat(); odpocet(); } ovšem to nefunguje, nic to neprovede... |
||
Johnyy Profil * |
#17 · Zasláno: 28. 10. 2008, 00:28:35
pomůžete prosím?
|
||
Chamurappi Profil |
#18 · Zasláno: 28. 10. 2008, 04:37:03
Reaguji na peppo/Johnyyho:
„můžete mi prosím někdo pomoci?“ „pomůžete mi, prosím?“ „pomůžete prosím?“ Přestaň prosím upozorňovat na své vlákno opakovanými prosbami. Pokud ti nikdo neodpovídá, tak asi nikdo neví. Nebo nikdo nemá chuť ti odpovědět — právě proto, že na sebe moc upozorňuješ. Potřebuješ-li skutečně nutně vyrobit kompletní skript, založ si vlákno v kategorii Práce a zakázky a nabídni adekvátní odměnu. Vynuluj i. |
||
Johnyy Profil * |
#19 · Zasláno: 28. 10. 2008, 18:12:04
Chamurappi
Omlouvám se, ale občas je nutné na téma upozornit, pokud se propadne moc dolů, už si ho nikdo ani nevšimne. Jinak zpět k hlavnímu problému, zkusil jsem i = 0; i i = ''; dokonce i clearInterval(i); ovšem bez účinku... |
||
peta Profil |
#20 · Zasláno: 29. 10. 2008, 07:55:46
peppo
jakpsatweb - javascript - priklady muzes pouzit metodu .innerHTML, .value nebo nejakou dalsi jakpsatweb - javascript - priklady - datum a cas Obsahuje priklad na aktivni zmenu casu, staci podle toho upravit tvuj priklad. Doufam, ze mas zabezpecene, co se stane, kdyz se nepodari spojit se serverem. Mohlo by se totiz stat, ze se chat prestane obnovovat a cas plyne dal. Coz rozhodne neni dobre pro uzivatele. Ale mel by plynout dal script pro obnovovani stranky. |
||
Johnyy Profil * |
#21 · Zasláno: 29. 10. 2008, 18:55:00
peta
Příklady jsem si projížděl, ovšem nikde jsem nanašel, to co potřebuji, např. nevím jak by se z tohoto příkladu: http://www.jakpsatweb.cz/javascript/priklady/datum-menici.html dalo použít něco, co potřebuji, holt JS tak dobře neovládám. Hledal jsem i na google, a i když už jsem něco našel tak tak většinou bylo window.location.reload(); což já nepotřebuji... |
||
Časová prodleva: 2 roky
|
|||
MiKe_94 Profil * |
#22 · Zasláno: 29. 6. 2010, 18:08:09
Prosím o pomoc.Tvořím web a použil jsem k přenahrávání ten AJAX skript nahoře v tomto tématu.Bohužel nefunguje v nové Opeře a já nevím jak to opravit.
Předem dík za pomoc |
||
Časová prodleva: 14 let
|
0