2016-08-02 7 views
0

私のPHPには大きな問題があります。& javascript code。JavascriptはPHP変数では動作しません

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から尋ねた行うことになっているよう

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

それがタイマーを示しています。私は、コード内で直接日付を入れしようとInfactは、出力は次のように、08/01/2017 3:45 PM

Infactはあります。

+3

、想像を、スクリプトを10回複製します。 – MuthaFury

答えて

0

これを試してみて、私の結果教えて(私はあなたがデータの1行のみを持っていると仮定): - あなたはデータの10行を持っている場合、それは悪い考えでは、ループ内でJavaScriptを持っている

$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(<?php echo trim($ time_data ['fine'] [0]);?>); – MuthaFury

+0

266行目(私の.phpファイル内)に "Uncaught SyntaxError:missing"引数リストを取得しました var _second = 1000; –

関連する問題