Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обратный таймер для нескольких значений таблицы
 
 автор: Valick   (28.03.2014 в 11:19)   письмо автору
 
 

написал такой код
<?php
$timer 
'00:01:00';
$auc = array(
        
'lot1'=>'01:05:00',
        
'lot2'=>'02:00:00',
        
'lot3'=>'00:15:07',
        
'lot4'=>'03:02:38',
        
'lot5'=>'07:35:21');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Таймер для аукциона</title>
<script>
function addNull(x) {return ((x < 10) ? '0' : '') + x} 
function revAucTimer(){
    var y = timer.innerHTML.split (':'), s = y [0] * 3600 + y [1] * 60 + y [2] * 1; 
    if (!s) {clearTimeout(TMR); timer.innerHTML = 'Stop'; return} 
    --s; 
    var ms = s % 3600, h = (s - ms) / 3600, s = ms % 60, m = (ms - s) / 60;
    timer.innerHTML = [addNull(h), addNull(m), addNull(s)].join (':')
   TMR = setTimeout('revAucTimer()', 1000);
}
</script>
</head>
<body onload="revAucTimer();">
  <table border="1">
    <tr>
      <th>picture</th>
      <th>name</th>
      <th>time</th>
    </tr>
    <tr>
      <td><img src="lion.png"></td>
      <td>lot0</td>
      <td><span id="timer"><?=$timer?></span></td>
    </tr>
  </table>
  <br />
  <table id="auction" border="1">
    <tr>
      <th>picture</th>
      <th>name</th>
      <th>time</th>
    </tr>
<?php
foreach($auc as $key => $value){
echo 
'<tr><td><img src="p.png"></td><td>'.$key.'</td><td>'.$value.'</td></tr>';
}
?>
  </table>
</body>
</html>

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

  Ответить  
 
 автор: Valick   (28.03.2014 в 13:51)   письмо автору
 
   для: Valick   (28.03.2014 в 11:19)
 

сделал вот так
function revAllTimer(){
var table = document.getElementById("auction");
var r = table.rows.length;
for(var i=1; i < r; i++){
  y = table.rows[i].cells[2].innerHTML.split (':'), s = y [0] * 3600 + y [1] * 60 + y [2] * 1;
  if (!s) continue;
  --s;
  var ms = s % 3600, h = (s - ms) / 3600, s = ms % 60, m = (ms - s) / 60;
    table.rows[i].cells[2].innerHTML = [addNull(h), addNull(m), addNull(s)].join (':');
 }
 TMR = setTimeout('revAllTimer()', 1000);
}

но может есть более грамотный вариант?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования