Autor | Zpráva | ||
---|---|---|---|
Pinqui Profil |
#1 · Zasláno: 17. 2. 2009, 17:43:04
Dobrý den.. chci se optat, jak udělat výpis z mysql přez innerHTML.
Mám v mysql 4 sloupce .. Potřeboval bych tento javascript po určité době refreshovat tak, aby jenom zkontroloval mysql a když by byl nový záznam připsal ho.. Aby to nerefreshovalo pořád vše. Děkuji za každou možnou radu. |
||
ninja Profil |
#2 · Zasláno: 17. 2. 2009, 17:50:23
To je trochu komplexni uloha, s cim konkretne si nevite rady? Dotaz na MySQL, Ajax request, nebo porovnani zmeny?
|
||
Pinqui Profil |
#3 · Zasláno: 17. 2. 2009, 18:36:25
Nevím jak to poskládat...
Vím jak cca vypsat přez innerHTML hodnotu do textu, ale nevim jak kontrolovat při refreshi.. jen toho scriptu aby to vypsalo to co ještě vypsané není.. -> Jak zajistit aby při každém refreshi to vybralo z mysql jen to co ještě nebylo vypsáno a přitom to nechalo vypsané to co již je.. Děkuji |
||
bohyn Profil |
#4 · Zasláno: 17. 2. 2009, 19:44:57
Pinqui
„Jak zajistit aby při každém refreshi to vybralo z mysql jen to co ještě nebylo vypsáno a přitom to nechalo vypsané to co již je..“ v URL posilej jako parametr i ID nebo cas posledniho zobrazeneho zaznamu (bez podrovnejsi znalosti tabulky tezko radit vic). „jak kontrolovat ... aby to vypsalo to co ještě vypsané není.“ Tak ze to co uz je vypsane uz znovu neodesles. |
||
Pinqui Profil |
#5 · Zasláno: 17. 2. 2009, 20:39:33
bohyn
To mi moc nepomohlo... mám .. nerefreshuji celou stránku.. potřebuji mít javascript který vložím do stránky.. tabulka například: jmeno | nadpis | text | napsal teď mám stránku ... buď body onload a funkce která to bude vypisovat s refreshem, nebo v head script pak v refreshi volání scriptu na výpis po určitém čase... Tak aby to vypsalo vždy to co vypsané ještě není například do nějakého divu ve stránce.... Nechci refreshovat celou stránku aby to posílalo pořád nové a nové adresy.. Když budu přez javascript refreshovat stránku tak mi nevunguji další javascriptové věci v něm. |
||
Pinqui Profil |
#6 · Zasláno: 18. 2. 2009, 21:03:17
nevíte prosím???
:-( |
||
Jonas Serych Profil |
#7 · Zasláno: 19. 2. 2009, 18:03:12
Zkratka a dobre vypis vzdy jen zaznamy, ktere maji cas vlozeni starsi nez TED-(perioda po ktere se skript reloaduje+rezerva na spojeni se serverem). Preci kdyz je v tabulce neco noveho, tak to znamena ze je to stare maximalne od posledni kontroly AJAXEM ne?
Good Luck |
||
Pinqui Profil |
#8 · Zasláno: 19. 2. 2009, 18:17:01
A jak zachovám ty staré...? Aby nezmizely .. Když budu vypisovat starší.. tak se mi vždycky znovunačte všechno.. Když bude hodně záznamů znamená to strašnou prodlevu při načtení
|
||
Jonas Serych Profil |
#9 · Zasláno: 21. 2. 2009, 10:08:20
nejdriv neajaxove nacti vsechny zaznamy a potom jak jsem to psal
|
||
Pinqui Profil |
#10 · Zasláno: 21. 2. 2009, 14:31:06
Jonas Serych
A mohl by jsi mi prosím dát nějakou ukázku... Opravdu si nevím rady... byl bych moc rád děkuji.. |
||
Str4wberry Profil |
#11 · Zasláno: 22. 2. 2009, 02:50:26
V určitém intervalu budeš posílat XMLHttpRequest, ten Ti vrátí nové záznamy, ty připíšeš. Takto se to bude opakovat neustále, co není jasné? Pokud ti není jasný AJAX, tak se podívej na jeho univerzální funkci.
|
||
Pinqui Profil |
#12 · Zasláno: 22. 2. 2009, 11:11:34
A jak to je když na stránce v tom refreshovaném prvku mám (a potřebuji) další javascript na přesměrování při nějaké podmínce.. Nyní mi to nejde.. script se provede jen při zmáčknutí F5 nikoly při refreshi přez javascript. Děkuji
|
||
Časová prodleva: 6 dní
|
|||
Jonas Serych Profil |
#13 · Zasláno: 28. 2. 2009, 18:02:00
to znamena, ze ty chces na tu stranku ajaxem z databaze pridat dalsi Javascript?
Jestli ne-je to jenom jinej script, tak si ho dej jako funkci a volej ho po tom AJAXovym nacteni. Jestli ne-asi te opravdu nechapu |
||
Jack06 Profil |
#14 · Zasláno: 1. 3. 2009, 14:12:24 · Upravil/a: Jack06
řeším to samé..
|
||
Jack06 Profil |
#15 · Zasláno: 1. 3. 2009, 14:18:13
Jonas Serych
Mám stránku a potřebuji přez ajax načítat informace z databáze v časových intervalech. (takže budu mít funkci , který bude každých xvteřin spouštět script na výpis dat z mysql, ale když bych dal do načtené informace další javascript (použití, například někoho budu chtít vyhodit z té stránky, takže jedině ho přesměrovat na jinou) tak mi to nefungovalo... Protože když bych měl ten script mimo refreshovaný, tak se nespustí.. spustí se až při zmáčknutí f5 a já potřebuji, aby se spustil při refreshi javascriptem //myslím že to jisté se ptá i on |
||
Pinqui Profil |
#16 · Zasláno: 2. 3. 2009, 16:57:47
Jack06
Ano v celku něco takového myslím.. vyřešil jsi už ten problém?? Prosím pomoc.... |
||
Časová prodleva: 4 dny
|
|||
Pinqui Profil |
#17 · Zasláno: 6. 3. 2009, 10:39:20
Prosím neví někdo :-( strašně by mi to pomohlo :-(
|
||
Jonas Serych Profil |
#18 · Zasláno: 6. 3. 2009, 10:46:46
No, ja teda nevim jak to tim ajaxem vypisujes, ale kdyz PHPkem vypises javascript tak normalne funguje. tak jestli ajaxem proste nactes tohle phpecko a vypises obsah tim ze nastavis innerhtml nejakemu tomu divu tak nevidim duvod proc by to nemelo fungovat. prosim naprosto presne co to ma byt a co by to melo delat
|
||
Pinqui Profil |
#19 · Zasláno: 6. 3. 2009, 12:34:48
Toto je refreshovaný soubor:
<? session_start(); require '../config.php';?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> <meta http-equiv="content-language" content="cs" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache, must-revalidate" /> <meta http-equiv="expires" content="0" /> <link media="all" href="./design/style.css" type="text/css" rel="stylesheet" /> <script src="refresh.js" type="text/javascript"></script> <title>SuperPokec.cz</title> </head> <body onLoad="runTimer()" id="sklo_f"> <? /* =================================== overeni kicku =================================== */ $kick = $join_db->query("SELECT doba, nick FROM {$_GET[rid]}_kick WHERE nick='{$_SESSION['user_nick']}'"); if($kick->num_rows > 0){ $v_kick= $kick->fetch_array(); $doba_k = $v_kick["doba"]; if ($doba_k > Time()){ echo ' <script type="text/javascript" language="javascript"> parent.parent.location.href = "../?mag=10"; </script>'; exit; } elseif ($doba_k < Time()){ $join_db->query("DELETE FROM {$_GET[rid]}_kick WHERE nick='{$_SESSION['user_nick']}'"); } } /* ================================== !overeni kicku! ================================== */ /* =================================== doba nepritomnosti =================================== */ $time_o = time()-300; $off_time = $join_db->query("SELECT u.nick FROM users u LEFT JOIN online o on u.nick = o.nick where o.nemluvil < '$time_o' "); if($off_time->num_rows > 0){ $kick = $off_time->fetch_array(); echo '<script type="text/javascript" language="javascript">parent.parent.location.href = "../?mag=#byl_jsi_kicknut";</script>'; $join_db->query("DELETE FROM online WHERE nick='".$kick[0]."' AND r_id={$_GET[rid]}"); } /* ================================== !doba nepritomnosti! ================================== */ ?> </body> </html> a javascript: function ajaxFunction() { var xmlHttp; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Nepodporuje AJAX"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { if (xmlHttp.status == 200) { var body = document.getElementsByTagName('body')[0]; body.innerHTML = xmlHttp.responseText; } } } xmlHttp.open("GET",location.href,true); //php subor xmlHttp.send(null); } function runTimer() { window.setInterval("ajaxFunction()", 5000); //interval refreshu... 1000 = 1 sekunda } Při : if ($doba_k > Time()){ echo ' <script type="text/javascript" language="javascript"> parent.parent.location.href = "../?mag=10"; </script>'; exit; } a if($off_time->num_rows > 0){ $kick = $off_time->fetch_array(); echo '<script type="text/javascript" language="javascript">parent.parent.location.href = "../?mag=#byl_jsi_kicknut";</script>'; $join_db->query("DELETE FROM online WHERE nick='".$kick[0]."' AND r_id={$_GET[rid]}"); } se javascript v tomto kodě neprovede.. v prvním případě se provede jen exit; ale nepřesměruje to z frame pryč :-( Podmínkou to projde ke scriptu na přesměrování ale přesměrování se neuskuteční |
||
Jonas Serych Profil |
#20 · Zasláno: 6. 3. 2009, 12:50:03
Ja ted moc nemam naladu to cist, ale proc je tam parent.parent.location? a proc to vubec delas pres framy?, to je snad nejhorsi zpusob jak neco udelat.
|
||
Pinqui Profil |
#21 · Zasláno: 6. 3. 2009, 19:07:41
Jonas Serych
Protože to je minichat.. A frame jsou k chatu přímo dělány. Jinde bych frame vživotě nepoužil :-) parent.parent tam je, protože tam jsou dva framesety :-) Prosím prosím pomozte, jak udělat aby se mi to refreshovalo jako nyní, ale další javascripty, které v těchto kódech jsou fungovali :-( |
||
Jonas Serych Profil |
#22 · Zasláno: 6. 3. 2009, 21:25:03
Ja teda fakt nevidim nejmensi duvod tam pouzivat framy, je to zastarale a jsou s tim akorat problemy
|
||
Pinqui Profil |
#23 · Zasláno: 6. 3. 2009, 21:40:36 · Upravil/a: Pinqui
Jonas Serych
Tam pak problém v odesílání dat z formuláře.. TO bych musel udělat též přez javascript, a to nevím jak :-( Abych to nemusel mít přez frame :-( Ale přesto nevím rpoč to nefunguje.. i když do tohoto kódu hodím alert, tak nevyskočí; |
||
Jonas Serych Profil |
#24 · Zasláno: 7. 3. 2009, 19:19:53
To myslis jako odeslani zpravy do chatu??? vzdyt to je jednoduche!
<form> <input type="text" name="textzpravypolicko" value="zadejte text zpravy"> <INPUT TYPE="button" VALUE="odeslat" NAME="odeslat" onClick="odesliAjaxem(this.form)"> </form> <script> function odesliAjaxem(form){ var textzpravy=form.textzpravypolicko.value; alert(textzpravy); // misto tohodle to normalne AJAXem posles serveru } </script> |
||
Pinqui Profil |
#25 · Zasláno: 7. 3. 2009, 22:01:43
Jonas Serych
Mno to bych asi mohl, jenomže to všechno ještě probíhá kontrolou v dalším php scriptu :-) A ikdyž to hodím do divů, tak stejnak tam nefunguje ten javascript na stránce.. |
||
Jonas Serych Profil |
#26 · Zasláno: 8. 3. 2009, 16:17:35
ASi to nechapu, to opravdu tohle nefunguje?:
javascriptem volam php script kterej vypise <script>alert("pokus");</script> a tento responseText vypisu zpatky do volajici stranky? |
||
Pinqui Profil |
#27 · Zasláno: 8. 3. 2009, 18:50:12
Takto jak to vidíš mám napsané scripty.. a nefunguje to.. funguje to až když dám F5..
|
||
Pinqui Profil |
#28 · Zasláno: 8. 3. 2009, 19:42:18 · Upravil/a: Pinqui
Jednodušší příklad toho, že se po refreshi javascriptem to v body neprovede:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com">; <title></title> <script> function ajaxFunction() { var xmlHttp; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Nepodporuje AJAX"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { var body = document.getElementsByTagName('body')[0]; body.innerHTML = xmlHttp.responseText; } } xmlHttp.open("GET",location.href,true); //php subor xmlHttp.send(null); } function runTimer() { window.setInterval("ajaxFunction()", 5000); //interval refreshu... 1000 = 1 sekunda } </script> </head> <body onLoad="runTimer();"> <script>alert("pokus");</script> </body> </html> a já potřebuji, aby se provedl při každém refreshi.. :-( |
||
Časová prodleva: 15 let
|
0