Witam!
Chciałbym, żeby różnica w czasie sama odświeżała się co 5 sek. ale nie poprzez przeładowanie całej strony tylko konkretnego diva, który pobiera ost. datę z bazy i pokazuję czas jaki upłynął od ost. wydrukowanej etykiety. Oto kod, który działa poprawnie, ale nie odswieża mi czasu.
<div id="load">
<script>
<?php
require_once "connect.php";
if (!$polaczenie = mysql_connect($host,$db_login,$db_pass,$db_name)) {
echo 'Nie można nawiązać połączenia z bazą danych';
exit;
}else
{
if (!mysql_select_db('sinbin', $polaczenie)) {
echo 'Nie można wybrać bazy danych';
exit;
}
$kodowanie=mysql_query('SET NAMES \'utf8\'');
if($result = mysql_query("SELECT login,data FROM sin ORDER BY data DESC LIMIT 1", $polaczenie))
{
$ilu_userow=mysql_num_rows ($result);
if($ilu_userow>0)
{
while($wiersz=mysql_fetch_assoc($result))
{
$login=$wiersz['login'];
$data=$wiersz['data'];
$czas= new DateTime ($data);
$czas->format('Y-m-d H:i:s');
$czas2=new DateTime ();
$czas2->format('Y-m-d H:i:s');
$roz=$czas2->diff($czas);
$roz->format('%y-%m-%d-%h-%i-%s');
$godzina=explode("-", $roz->format('%Y-%M-%D-%H-%I-%S'));
echo"var dzien2 = $godzina[2];";
echo"var godzina2 = $godzina[3];";
echo"var minuta2 = $godzina[4];";
echo"var sekunda2 = $godzina[5];";
?>
function odliczanie()
{
sekunda2=sekunda2+1;
if (sekunda2>=60) {sekunda2=0; minuta2=minuta2+1;}
if (minuta2>=60) {minuta2=0; godzina2=godzina2+1;}
if (godzina2>23) {godzina2=0; dzien2=dzien2+1;}
if (dzien2>30)
{
location.reload();
} else{
if (sekunda2<10) var sek2="0"+sekunda2; else sek2=sekunda2;
if (minuta2<10) var min2="0"+minuta2; else min2=minuta2;
if (godzina2<10) var godz2="0"+godzina2; else godz2=godzina2;
if (dzien2<10) var day2="0"+dzien2; else day2=dzien2;
document.getElementById('licz1').innerHTML='<span style="color:red; font-weight:bold;">'+day2+'</span>';
document.getElementById('licz2').innerHTML='<span style="color:red; font-weight:bold;">'+godz2+'</span>';
document.getElementById('licz3').innerHTML='<span style="color:red; font-weight:bold;">'+min2+'</span>';
document.getElementById('licz4').innerHTML='<span style="color:red; font-weight:bold;">'+sek2+'</span>';
setTimeout("odliczanie()", 1000);
}
}
</script>
<?php
echo '<span style="width:200px; height:25px; background-color:lightgreen; border-radius: 20px/50px; color:black; padding:8px; box-shadow: 5px 5px 2px 2px grey;"><span id="ok2" style="color:black; font-weight:bold;">Ostatnią etykietę wydrukowano: </span><span id="licz1" style="color:red; font-weight:bold;"></span><span id="z1" style="color:black; font-weight:bold;"> Dni, </span><span id="licz2" style="color:red; font-weight:bold;"></span><span id="z2" style="color:black; font-weight:bold;"> Godz, </span><span id="licz3" style="color:red; font-weight:bold;"></span><span id="z3" style="color:black; font-weight:bold;"> Min, </span><span id="licz4" style="color:red; font-weight:bold;"></span><span id="z4" style="color:black; font-weight:bold;"> Sek.</span><span id="z5" style="color:black; font-weight:bold;"> przez: </span><span style="color:red; font-weight:bold;">'.$login.'</span></span>';
}
}
}
mysql_close($polaczenie);
}
?>
</div>
Oto funkcja odwieżająca czas
<script type="text/javascript">
setInterval("odswiez2();",5000);
function odswiez2(){
$('#load').load('http://172.27.189.11/ #load');
}
</script>