2016-08-07 15 views
1

Ich mache eine Web-App und möchte ein Diagramm zeichnen, deren Werte alle 5 Sekunden aktualisieren. Ich habe versucht, einen globalen Wert zu erstellen, aber es hat nicht funktioniert, weil es zuerst das Diagramm zeichnet und dann Daten von meinem Ajax-Aufruf nimmt.JSON-Daten von Funktion erhalten, um Wert zu Diagramm JS

overview_p.php:

$(document).ready(function(){ 
    getChartInfo(); 
}); 

setInterval(function(){ getChartInfo() }, 5000); 
function getChartInfo() 
{ 
    $.ajax({ 
     type: 'post', 
     url: 'php/classes/dash/overview_c.php', 
     data: "type=stat1&user_id=<?php echo $_SESSION['user_id'];?>", 
     dataType: 'json', 
     success: function(responseStat1){ 
      var statHour1 = 0; 
      $.each(responseStat1, function(index){ 
       statHour1 += responseStat1[index].hours; 
      }); 
      $('.statHour1').html(statHour1 + ' uur'); 
     }, 
     error: function(error){ 
      console.log(error); 
     } 
    }) 
    } 

overview_c.php:

 <?php 
class Overview{ 
    public function getStat1(){ 
       $json_getStat1[] = array('hours' => '2'); 
      } 

      print json_encode($json_getStat1); 
     } 
    } 
} 
    $overview = new Overview(); 
    switch($_POST['type']){ 
     case 'stat1': 
      $overview->getStat1(); 
      break; 
    } 
    ?> 
+0

Und wie genau ist das Diagramm gezeichnet, und was ist '.statHour1' hier? – adeneo

Antwort

0

Sie sollten Ihr Diagramm in der Erfolgsfunktion, Ajax-Aufrufe asynchron sind von Natur aus zeichnen, so dass die einzige andere Alternative ist es, mache den Anruf mit async: false, was eine sehr schlechte Idee ist (deine UI wird eingefroren, bis der Server antwortet). Geben Sie uns auch etwas, mit dem wir für eine bessere Antwort arbeiten können, nicht viel kann verstanden werden von dem, was Sie präsentieren

Verwandte Themen