Я делаю веб-страницу, которая должна показывать обратный отсчет, и если она приходит к нулю, следующий отсчет должен начинаться с нового срока. Теперь, я сделал часть обратного отсчета в Javascript, это работает.
Я сделал часть php, которая считывает крайние сроки из txt-файла, это также работает.
Теперь я нашел способ перенести php-крайний срок на javascript, должен работать.
Но. следующий крайний срок должен начинаться, когда предыдущий закончен, так что это 00:00:00. Есть ли способ проверить содержимое html div в php? Таким образом, было бы необходимо проверить, соответствует ли содержание div с id = обратным отсчетом 00:00:00проверить PHP, если html div равно определенному значению
спасибо, ребята! изменения: предложение дубликатом вопрос не решить мою проблему ...
<!DOCTYPE html>
<!-- php functions -->
<?php
$deadlineH = null;
$deadlineM = null;
$deadlineS = null;
$deadlineTitle = null;
$filename = "data.txt";
$fp = fopen($filename, "r");
$content = fread($fp, filesize($filename));
$fullArray = setFullArray($content);
$length = count($fullArray);
for ($i = 0; $i < $length - 1; $i++) {
$value = $fullArray[$i];
echo "var " . ($i + 1) . ": " . $fullArray[$i] ." <br>";
if((($i+1) % 4) == 0){
echo " ";
}
}
$numberoflines = getNumberOflines($fullArray);
echo "number of lines: " . $numberoflines . "<br>";
showDeadlines($fullArray);
function setFullArray($content){
$fullArray = preg_split("/(:|\n)/" ,$content); // splits the whole data txt file into small chunks, everything apart
return $fullArray;
}
function getNumberOflines($fullArray){
$numberoflines = (sizeof($fullArray) - 1)/4;
return $numberoflines;
}
function showDeadlines($fullArray){
$length = count($fullArray);
for ($i=0; $i < $length-1; $i = $i + 4) {
$deadlineNumber = ($i + 4)/4;
$deadlineH = $fullArray[$i];
$deadlineM = $fullArray[$i+1];
$deadlineS = $fullArray[$i+2];
$deadlineTitle = $fullArray[$i+3];
echo "deadline " . $deadlineNumber . ": " . $deadlineH . ":" . $deadlineM . ":" . $deadlineS . " titel : " . $deadlineTitle . "<br>";
}
}
?>
<!-- end php functions -->
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body onload="startTime()">
<?php
//php vars:
$NumberOfDeadlines = 10;
?>
<div id="visible">
<div id="clock"><span> </span> </div><br>
<div id="countdown"> </span> </div>
</div>
<div id="inputs">
<form>
<!-- <?php
for ($i=1; $i < $NumberOfDeadlines; $i++) { ?>
deadline <?= $i ?> : <br>
<label for="deadline<?= $i ?>H">Hour: </label>
<input type="number" name="deadline<?= $i ?>H" id="deadline<?= $i ?>H" min="0" max="23">
<label for="deadline<?= $i ?>M">Minute: </label>
<input type="number" name="deadline<?= $i ?>M" id="deadline<?= $i ?>M" min="0" max="59">
<label for="deadline<?= $i ?>S">Second: </label>
<input type="number" name="deadline<?= $i ?>S" id="deadline<?= $i ?>S" min="0" max="59">
<label for="deadline<?= $i ?>Title">Title: </label>
<input type="text" name="deadline<?= $i ?>Title" id="deadline<?= $i ?>Title">
<br>
<?php
}
?> -->
<input type="submit" value="Submit">
</form>
</div>
<!-- javascript scripts -->
<script>
function startTime() {
var now = new Date();
//var deadline = new Date(); NOT USED ANY MORE
// year, month, day, hours, minutes, seconds, milliseconds
var deadline = new Date(2016, 11, 9);
var phpHours = <?php echo json_encode($GLOBAL[deadlineH]); ?>;
var phpMinutes = <?php echo json_encode($GLOBAL[deadlineM]); ?>;
var phpSeconds = <?php echo json_encode($GLOBAL[deadlineS]); ?>;
deadline.setHours()
//console.log(deadline);
var clockH = now.getHours();
var clockM = now.getMinutes();
var clockS = now.getSeconds();
// var countdownH = getCountdown(deadline).hours;
// var countdownM = getCountdown(deadline).minutes;
// var countdownS = getCountdown(deadline).seconds;
//m = checkTime(m);
//s = checkTime(s);
startClock('clock');
startCountdown('countdown', deadline);
var t = setTimeout(startTime, 500);
}
function getCountdown(deadline){
//console.log(Date.parse(deadline));
//console.log(Date.parse(new Date()));
var countdownTotal = Date.parse(deadline) - Date.parse(new Date());
var countdownS = Math.floor((countdownTotal/1000) % 60);
var countdownM = Math.floor((countdownTotal/1000/60) % 60);
var countdownH = Math.floor((countdownTotal/(1000*60*60)) % 24);
return{
'countdownTotal': countdownTotal,
'countdownH': countdownH,
'countdownM': countdownM,
'countdownS': countdownS
}
}
function startClock(id){
var clock = document.getElementById(id);
var timeInterval = setInterval(function(){
var now = new Date();
var nowH = now.getHours();
var nowM = now.getMinutes();
var nowS = now.getSeconds();
nowH = checkTime(nowH);
nowM = checkTime(nowM);
nowS = checkTime(nowS);
clock.innerHTML = nowH + ':' + nowM + ':' + nowS;
}, 1000);
}
function startCountdown(id, deadline){
var countdown = document.getElementById(id);
var timeInterval = setInterval(function(){
var t = getCountdown(deadline);
//console.log(t);
countdown.innerHTML = checkTime(t.countdownH) + ':' + checkTime(t.countdownM) + ':' + checkTime(t.countdownS);
if(t.countdownTotal <= 0){
clearInterval(timeInterval);
}
}, 1000);
}
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
</script>
<!-- //end javascript -->
</body>
</html>
Я думаю, что вы захотите сделать вызов AJAX и отправить содержимое div скрипту php для разбора/обработки. – raphael75
Я добавил свой код для человека, который спросил об этом. –
Возможный дубликат [Как получить значение HTML Div с помощью PHP] (http://stackoverflow.com/questions/30569809/how-to-get-value-of-html-div-using-php) –