серверный таимер
Здравствуйте, имеется таимер, нужно что бы по окончанию отчета таимера в поле 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>
|
url:
Таймер если закончил работу location.href = новый адрес. |
Цитата:
|
$_SERVER['PHP_SELF'] - это текущий файл сервера, то есть тот который выполняется, а значит тот, что отдал страницу с вашим JS-кодом. А это есть текущий URL, в JS это window.location. То есть вставлять РНР кодом в скрипт нет никакой необходимости.
Укажите location url отличный от текущего, будет переход по новому адресу. Сервером вы не сможете перенаправить, отправив заголовок, ибо асинхронный запрос. |
| Часовой пояс GMT +3, время: 23:47. |