javascript
  • php
  • 2016-08-02 5 views 0 likes 
    0

    Ich habe ein großes Problem mit meinem PHP & Javascript-Code.Javascript funktioniert nicht mit 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> 
          "); 
    } 
    

    Wenn ich diesen Code verwenden, erhalte ich diese im Countdown:

    NaN days NaN Hours Nan Mins NaN Secs 
    

    i die Ausgabe von

    $row['fine']; 
    

    und die Ausgabe, die es in der richtigen Form geprüft habe, ist gefragt von Javascript. Infact, ist der Ausgang 08/01/2017 3:45 PM

    Infact, wenn ich versuche, das Datum zu setzen direkt in den Code wie folgt:

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

    es den Timer zeigt, wie es tun soll.

    +3

    es ist eine schlechte Idee Javascript innerhalb der Schleife ist, wenn Sie sich vorstellen 10 Reihen von Daten haben, Es wird das Skript 10 Mal duplizieren. – MuthaFury

    Antwort

    0

    Versuchen Sie dies (ich nehme an, Sie nur 1 Reihe von Daten) und sagen Sie mir, das Ergebnis: -

    $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

    Nein, es funktioniert nicht :( –

    +0

    @MicheleGuidetti versuchen, 'console.log ();' Sehen, welches Ergebnis erhalten Sie. – MuthaFury

    +0

    Ich bekomme "Uncaught SyntaxError: fehlt) nach Argument-Liste" in Zeile 266 (in meiner. PHP-Datei), die in var _second = 1000 ist; –

    Verwandte Themen