Autor Zpráva
Pinqui
Profil
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
To je trochu komplexni uloha, s cim konkretne si nevite rady? Dotaz na MySQL, Ajax request, nebo porovnani zmeny?
Pinqui
Profil
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
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
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
nevíte prosím???

:-(
Jonas Serych
Profil
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
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
nejdriv neajaxove nacti vsechny zaznamy a potom jak jsem to psal
Pinqui
Profil
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
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
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
Jonas Serych
Profil
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
řeším to samé..
Jack06
Profil
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
Jack06

Ano v celku něco takového myslím.. vyřešil jsi už ten problém?? Prosím pomoc....
Pinqui
Profil
Prosím neví někdo :-( strašně by mi to pomohlo :-(
Jonas Serych
Profil
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
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
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
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
Ja teda fakt nevidim nejmensi duvod tam pouzivat framy, je to zastarale a jsou s tim akorat problemy
Pinqui
Profil
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
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
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
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
Takto jak to vidíš mám napsané scripty.. a nefunguje to.. funguje to až když dám F5..
Pinqui
Profil
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.. :-(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0