Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   серверный таимер (https://javascript.ru/forum/misc/73097-servernyjj-taimer.html)

Fox- 20.03.2018 22:34

серверный таимер
 
Здравствуйте, имеется таимер, нужно что бы по окончанию отчета таимера в поле live, происходил редирект на другую страницу

<?php
 
header('Content-Type: text/html; charset=utf-8');
 
if($_SERVER['REQUEST_METHOD'] == 'POST') {
 
echo 59 - date("s");
 
exit;
 
}
 
?>
 
<!DOCTYPE html>
 
<html>
 
<head>
 
<title></title>
 
</head>
 
<body>
 
<div>countdown <span id="timer">0</span> s.</div>
 
<div>countdown <span id="timerlive">0</span> s. live</div>
 
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
 
<script type="text/javascript">
 
$(function() {
 
function func() {
 
var seconds = $('#timer').text();
 
if (seconds > 0) {
 
$('#timer').text(--seconds);
 
setTimeout(func, 1000);
 
} else {
 
var jqxhr = $.ajax({
 
url: '<?=$_SERVER['PHP_SELF']?>',
 
data: {'getseconds':'true'},
 
type: 'POST',
 
})
 
.done(function(seconds) {
 
$('#timer').text(seconds);
 
setTimeout(func, 1000);
 
})
 
.fail(function() {
 
var conn = confirm("Нет связи с сервером. Повтрить попытку?");
 
if (conn) {
 
setTimeout(func, 1000);
 
}
 
});
 
}
 
}
 
 
 
function funclive() {
 
var jqxhr = $.ajax({
 
url: '<?=$_SERVER['PHP_SELF']?>',
 
data: {'getseconds2':'true'},
 
type: 'POST',
 
})
 
.done(function(seconds) {
 
$('#timerlive').text(seconds);
 
setTimeout(funclive, 1000);
 
});
 
}
 
 
 
setTimeout(func, 1000);
 
setTimeout(funclive, 1000);
 
 
 
});
 
</script>
 
</body>
 
</html>

laimas 20.03.2018 23:17

url: '<?=$_SERVER['PHP_SELF']?>' location,

Таймер если закончил работу location.href = новый адрес.

Fox- 20.03.2018 23:58

Цитата:

Сообщение от laimas (Сообщение 481109)
url: '<?=$_SERVER['PHP_SELF']?>' location,

Таймер если закончил работу location.href = новый адрес.

не редиректит и связь с сервером теряется

laimas 21.03.2018 00:52

$_SERVER['PHP_SELF'] - это текущий файл сервера, то есть тот который выполняется, а значит тот, что отдал страницу с вашим JS-кодом. А это есть текущий URL, в JS это window.location. То есть вставлять РНР кодом в скрипт нет никакой необходимости.

Укажите location url отличный от текущего, будет переход по новому адресу. Сервером вы не сможете перенаправить, отправив заголовок, ибо асинхронный запрос.


Часовой пояс GMT +3, время: 14:02.