Ознакомьтесь с нашей политикой обработки персональных данных
17:59 

Мохнорыл
маленькое щячло
И снова с вами я:)
Вопрос следующий: в цикле выводиться таблица с 9ю лотами, на них идет обратный отсчет. Таймер есть, работает корректно (правда один раз:)). Проблема в переменных. Решил добавлять к именам переменной $a (которое ++ с каждым циклом), которую цеплял ко всем варам в следующим виде - var '.$a.'Date. Но что-то видимо не так делал..

<sсriрt language=Javasсript type=text/javasсript>
        function fulltime () {
        var time=new Date();
        var newYear=new Date("'.date('M,d,Y,g:m:s', $lots['lot_time']).'");
        var totalRemains=(newYear.getTime()-time.getTime());
        if (totalRemains>1){
          var RemainsSec = (parseInt(totalRemains/1000));//5
          var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));//33
          var secInLastDay=RemainsSec-RemainsFullDays*24*3600; //5
          var RemainsFullHours=(parseInt(secInLastDay/3600));//33
          if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
          var secInLastHour=secInLastDay-RemainsFullHours*3600;//5
          var RemainsMinutes=(parseInt(secInLastHour/60));//51
          if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
          var lastSec=secInLastHour-RemainsMinutes*60;//5
          if (lastSec<10){lastSec="0"+lastSec};
          document.getElementById("RemainsFullDays").innerHTML=RemainsFullDays+"дн. ";
          document.getElementById("RemainsFullHours").innerHTML=RemainsFullHours+"ч. ";
          document.getElementById("RemainsMinutes").innerHTML=RemainsMinutes+"мин. ";
          document.getElementById("lastSec").innerHTML=lastSec+"сек. ";
          setTimeout(\'fulltime()\',10)
        }
        else{
          document.getElementById("clock").innerHTML="Продано!";
        }
        }
        </sсriрt>
        <sсriрt language=Javasсript>fulltime();</sсriрt>

        <TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 align=center>
        <TR ALIGN=center CLASS=countdown>
        <TD WIDTH=25%> <B ID=RemainsFullDays>0</B></TD>
        <TD ROWSPAN=2 WIDTH=75%><B ID=RemainsFullHours>00</B><B ID=to>:</B><B ID=RemainsMinutes>00</B><B ID=lastSec>00</B>
        </TD>
        </TR>
        <TR ALIGN=center>
        <TD WIDTH=25% ID=clock></TD>
        </TR>
        </TABLE>'

@темы: Алгоритмы, Разное

Комментарии
2009-10-22 в 18:12 

La personne mystique
 
ээ... так. для затравки. первое:

var '.$a.'Date
не понял вот этого, но имена переменных, насколько я помню, не могут начинаться с цифр.

второе:

<sсriрt language=Javasсript>fulltime();</sсriрt>
ты вызываешь функцию fulltime(), обращающуюся к элементам RemainsFullDays, RemainsFullHours, ... в том месте, где эти элементы еще не определены.
как минимум, перенеси этот вызов вниз, под таблицу. альтернативный вариант - цеплять функцию как обработчик событий ondomready/onload.

третье: запусти в Опере или Фоксе и загляни в консоль ошибок, обычно проблема становится более-менее очевидна.

и мелочь:
setTimeout(\'fulltime()\',10)
обрати внимание на ф-ию setInterval .-)

   

Сообщество PHP программистов

главная