Несколько таймеров обратного отсчета с использованием цикла PHP - PullRequest
1 голос
/ 04 августа 2011

То, что я пытаюсь сделать, это вывод данных из моей базы данных с использованием PHP.Наряду с этими данными я хотел бы включить таймер обратного отсчета, используя данные из моей базы данных.Естественно, таймер сделан с использованием JavaScript, но я изо всех сил пытаюсь решить, как включить переменную PHP в код JavaScript, а затем просмотреть все мои результаты, включая экземпляр таймера в каждой строке.

Я тестирую здесь: http://www.lineswritten.co.uk/Countdown/ - красный «таймер здесь» - это то место, где я бы хотел, чтобы были 4 верхних экземпляра «ожидания ...».Эти четыре экземпляра не включены в мой цикл.

Я предполагаю, что это будет сделано с $count++, но я не уверен, как все это закодировать.

Мой таймер JavaScript имеетотсюда: http://jsfiddle.net/HSx9U/

Код следующий:

JavaScript

var count1 = new countDown(new Date('2010/12/11 10:44:59'),'counter1', 'tomorrow 10:45')
,count2 = new countDown(new Date('2010/12/25'),'counter2', 'first christmas day 2010')
,count3 = setTimeout(function(){
    return new countDown(new Date('2011/12/25'),'counter3', 'first christmas day 2011');
},2000)
,count4 = setTimeout(function(){
    return new countDown(new Date('2100/01/01'),'counter4', 'a new era starts');
},4000);

function countDown(startTime, divid, the_event){
var tdiv = document.getElementById(divid)
    ,start = parseInt(startTime.getTime(),10)
    ,the_event = the_event || startTime.toLocaleString()
    ,to;
this.rewriteCounter = function(){
  var now = new Date().getTime()
      ,diff = Math.round((start - now)/1000);
  if (startTime > now)
  {
    tdiv.innerHTML = diff +' seconds untill ' + the_event;
  }
  else {clearInterval(to);}
};
this.rewriteCounter();
to = setInterval(this.rewriteCounter,1000);

}

HTML

<div id="counter1">waiting...</div>
<div id="counter2">waiting...</div>
<div id="counter3">waiting...</div>
<div id="counter4">waiting...</div>

Таблица HTML / цикл PHP

<table>
 <tr>
  <th id="logo">Logo</th>
  <th id="name">Name</th>
  <th id="discount">Discount</th>
  <th id="length">Sale Length</th>
  <th id="time">Time Remaining</th>
  <th id="what">On What</th>
  <th id="small-print">Small Print</th>
  <th id="link">Link to Sale</th>
</tr>

while ($row = mysql_fetch_array($result)) {

$discount = $row['discount'];
$product = $row['product'];
$terms = utf8_decode($row['terms']);
$brand_name = $row['brand_name'];
$code = $row['code'];
$link = $row['link'];
$logo = $row['logo'];
$length = $row['length'];

  <tr>
  <td headers="logo"><?php echo $logo;?></td>
  <td headers="name"><p><?php echo $brand_name;?></p></td>
  <td headers="discount"><p><?php echo $discount;?></p></td>
  <td headers="length"><p><?php echo $length;?></p></td>
  <td headers="time"><p style="color:#F00;">timer here</p></td>
  <td headers="what"><p><?php echo $product;?></p></td>
  <td headers="small-print"><p><?php echo $terms;?></p></td>
  <td headers="link"><p>Redeem</p></td>

}

</table>

Я предположил, что могу изменить new Date('2010/12/11 10:44:59') на new Date('$newDate'), но это не сработало.

1 Ответ

0 голосов
/ 04 августа 2011

Получение содержимого из PHP в javascript лучше всего выполнять с помощью функции PHP json_encode ().Вы можете передать ему массив следующим образом:

$array = ('item1', 'item2');
echo '<script type="text/javascript">';
echo 'var myarray = '.json_encode($array).';';
// iterate etc here
echo '</script>';
...