серверный таимер
Здравствуйте, имеется таимер, нужно что бы по окончанию отчета таимера в поле 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, время: 14:02. |