Авто рефреш на кода на всеки 10 сек. + брояч.

VoodooNet

Registered
Имам следния код:

PHP:
<?php

header('Refresh: 10');

function queryTimeServer ($timeserver, $socket) {
    $timevalue = 0;
    $ret = array();
    $fp = @fsockopen($timeserver,$socket,$err,$errstr,5);
    if ($fp) {
        fputs($fp,"\n");
        $timevalue = fread($fp,49);
        fclose($fp);
    }   
    $ret['time'] = $timevalue;
    $ret['errno'] = $err;
    $ret['errstr'] = $errstr;
    return $ret;
}

// Време от сървъра.
$timevalue = date("d.m.Y г. / H:i:s ч.");
 
// Пеи успешна връзка с NTP - извличаме инфото от него.
$timercvd = queryTimeServer("time.voodoonet.biz", 13);
if (!$timercvd['errno'] && $timercvd['time'] > 0) {
    $timevalue = strtotime($timercvd[0]);
}
echo "<p>Точно време: {$timevalue}<font color='blue'> ( Часът се актуализира на всеки 10 сек. )</font></p>";
?>

Сега рефрешва на всеки 10 сек. Аз искам да има брояч които да брои от 10 до 0 и да рефрешва, и после пак да почне отново да брои от 10 към 0.

Как да стане? :)
 
Я виж тва, мисл че е точното..
http://dynamicdrive.com/dynamicindex6/refresh.htm

Ето ти кода:
Код:
<script language="JavaScript">

//Refresh page script- By Brett Taylor (glutnix@yahoo.com.au)
//Modified by Dynamic Drive for NS4, NS6+
//Visit http://www.dynamicdrive.com for this script

//configure refresh interval (in seconds)
var countDownInterval=60;
//configure width of displayed text, in px (applicable only in NS4)
var c_reloadwidth=200

</script>


<ilayer id="c_reload" width=&{c_reloadwidth}; ><layer id="c_reload2" width=&{c_reloadwidth}; left=0 top=0></layer></ilayer>

<script>

var countDownTime=countDownInterval+1;
function countDown(){
countDownTime--;
if (countDownTime <=10){
countDownTime=countDownInterval;
clearTimeout(counter)
window.location.reload()
return
}
if (document.all) //if IE 4+
document.all.countDownText.innerText = countDownTime+" ";
else if (document.getElementById) //else if NS6+
document.getElementById("countDownText").innerHTML=countDownTime+" "
else if (document.layers){ //CHANGE TEXT BELOW TO YOUR OWN
document.c_reload.document.c_reload2.document.write('Next <a href="javascript:window.location.reload()">refresh</a> in <b id="countDownText">'+countDownTime+' </b> seconds')
document.c_reload.document.c_reload2.document.close()
}
counter=setTimeout("countDown()", 1000);
}

function startit(){
if (document.all||document.getElementById) //CHANGE TEXT BELOW TO YOUR OWN
document.write('Next <a href="javascript:window.location.reload()">refresh</a> in <b id="countDownText">'+countDownTime+' </b> seconds')
countDown()
}

if (document.all||document.getElementById)
startit()
else
window.onload=startit

</script>
 
Да точно за това става дума. Нещо обаче не успявам да го интергрирам в моя код. Дали ще може още малко съдействие ? :)
 
VoodooNet каза:
Да точно за това става дума. Нещо обаче не успявам да го интергрирам в моя код. Дали ще може още малко съдействие ? :)
Е просто копираш всичко и го слагаш над PHP кода?
 
Ами естествено, че няма да ти се получи - това е на javascript, не можеш директно да го слагаш в кода.
Пробвай кода му да да го сложиш в echo""; :
echo"
//тук копирай кода
";
Пробвах така и става (пробвах с най-простата възможна функция - alert). Ако и тогава не става, значи е грешен javascript-a.
 
Така не дава грешки:
Код:
<?php header('Content-type: text/html; charset=utf-8');
	echo "
	<script language=JavaScript>

//Refresh page script- By Brett Taylor (glutnix@yahoo.com.au)
//Modified by Dynamic Drive for NS4, NS6+
//Visit http://www.dynamicdrive.com for this script

//configure refresh interval (in seconds)
var countDownInterval=60;
//configure width of displayed text, in px (applicable only in NS4)
var c_reloadwidth=200

</script>


<ilayer id=c_reload width=&{c_reloadwidth}; ><layer id=c_reload2 width=&{c_reloadwidth}; left=0 top=0></layer></ilayer>

<script>

var countDownTime=countDownInterval+1;
function countDown(){
countDownTime--;
if (countDownTime <=10){
countDownTime=countDownInterval;
clearTimeout(counter)
window.location.reload()
return
}
if (document.all) //if IE 4+
document.all.countDownText.innerText = countDownTime+'';
else if (document.getElementById) //else if NS6+
document.getElementById('countDownText').innerHTML=countDownTime+' '
else if (document.layers){ //CHANGE TEXT BELOW TO YOUR OWN
document.c_reload.document.c_reload2.document.write('Next <a href='javascript:window.location.reload()'>refresh</a> in <b id='countDownText'>'+countDownTime+' </b> seconds')
document.c_reload.document.c_reload2.document.close()
}
counter=setTimeout'countDown()', 1000);
}

function startit(){
if (document.all||document.getElementById) //CHANGE TEXT BELOW TO YOUR OWN
document.write('Next <a href='javascript:window.location.reload()'>refresh</a> in <b id=countDownText>'+countDownTime+' </b> seconds')
countDown()
}

if (document.all||document.getElementById)
startit()
else
window.onload=startit

</script>
	";
?>
Но аз не мога да го разбера - толкова дълъг код...
Така че ако искаш виж това:
Код:
<?php
echo "
	<script>
        
    </script>
";
?>
Доста по-кратко е, а и мисля, че доста по-добре се разбира.
А ако искаш да ти показва оставащите секунди до рефрешването:
Слагаш това преди start_sec--; :
Код:
 var abcd=document.getElementById("count");
abcd.innerHTML=start_sec;
И след това в друго ехо:
echo "<div id=count></div>";
 

Back
Горе