2016-08-02 3 views
0

У меня есть большая проблема с моим кодом php &.Javascript не будет работать с php variabiles

while($row = mysqli_fetch_array($doquery, MYSQLI_ASSOC)) { 



      echo (" 

      <!-- Inizio Item--> 
       <script type='text/javascript'> 

       var end = new Date('".$row['fine']."'); 


       var _second = 1000; 
       var _minute = _second * 60; 
       var _hour = _minute * 60; 
       var _day = _hour * 24; 
       var timer; 

       function showRemaining() { 
        var now = new Date(); 
        var distance = end - now; 
        if (distance < 0) { 

         clearInterval(timer); 
         document.getElementById('countdown".$row['id']."').innerHTML = 'EXPIRED!'; 

         return; 
        } 
       var days = Math.floor(distance/_day); 
       var hours = Math.floor((distance % _day)/_hour); 
       var minutes = Math.floor((distance % _hour)/_minute); 
       var seconds = Math.floor((distance % _minute)/_second); 

       document.getElementById('countdown".$row['id']."').innerHTML = days + ' Days '; 
       document.getElementById('countdown".$row['id']."').innerHTML += hours + ' Hours '; 
       document.getElementById('countdown".$row['id']."').innerHTML += minutes + ' Mins '; 
       document.getElementById('countdown".$row['id']."').innerHTML += seconds + ' Secs'; 
       } 
       </script> 
       <div id='countdown".$row['id']."'></div> 
      "); 
} 

Если я использую этот код, я получаю это в обратном отсчете:

NaN days NaN Hours Nan Mins NaN Secs 

Я проверил выход

$row['fine']; 

и выход он находится в правильной форме спросил из javascript. Infact, выход 08/01/2017 3:45 PM

Infact, если я пытаюсь поставить дату непосредственно в коде, например:

... 
var end = new Date('08/01/2016 3:45 PM '); 
... 

это показывает таймер, как он должен делать.

+3

это плохая идея, имея JavaScript внутри цикла, представьте себе, если у вас есть 10 строк данных, он будет дублировать сценарий 10 раз. – MuthaFury

ответ

0

Попробуйте это (я предполагаю, что у вас есть только одна строка данных) и сказать мне результат: -

$time_data = array(); 
while($row = mysqli_fetch_array($doquery, MYSQLI_ASSOC)) { 
$time_data['fine'][]=$row['fine']; 
$time_data['id'][]=$row['id'] 
} 


      <!-- Inizio Item--> 
       <script type='text/javascript'> 

       var end = new Date('<?php echo trim($time_data['fine'][0]); ?>'); 


       var _second = 1000; 
       var _minute = _second * 60; 
       var _hour = _minute * 60; 
       var _day = _hour * 24; 
       var timer; 

       function showRemaining() { 
        var now = new Date(); 
        var distance = end - now; 
        if (distance < 0) { 

         clearInterval(timer); 
         document.getElementById('countdown<?php echo $time_data['id'][0]; ?>').innerHTML = 'EXPIRED!'; 

         return; 
        } 
       var days = Math.floor(distance/_day); 
       var hours = Math.floor((distance % _day)/_hour); 
       var minutes = Math.floor((distance % _hour)/_minute); 
       var seconds = Math.floor((distance % _minute)/_second); 

       document.getElementById('countdown<?php echo $time_data['id'][0]; ?>').innerHTML = days + ' Days '; 
       document.getElementById('countdown<?php echo $time_data['id'][0]; ?>').innerHTML += hours + ' Hours '; 
       document.getElementById('countdown<?php echo $time_data['id'][0]; ?>').innerHTML += minutes + ' Mins '; 
       document.getElementById('countdown<?php echo $time_data['id'][0]; ?>').innerHTML += seconds + ' Secs'; 
       } 
       <div id='countdown<?php echo $time_data['id'][0]; ?>'></div> 
+0

Нет, это не работает :( –

+0

@MicheleGuidetti попробуйте поставить 'console.log ();' Посмотрите, какой результат вы получите. – MuthaFury

+0

Я получаю сообщение «Uncaught SyntaxError: missing» после списка аргументов »в строке 266 (в моем .php-файле), который находится в var _second = 1000; –

Смежные вопросы