2013-07-14 3 views
1

Я уже довольно давно работал над созданием графика с использованием динамических данных. Я следую этому учебному пособиюAmCharts с MySQL

http://blog.amcharts.com/2011/03/amcharts-javascript-tutorials-part-2.html

У меня есть PHP-файл, который работает, и успешно опрашивает сервер MYSQL Я создал, и создает текстовый файл.

пока что у меня всего 16 записей в моей базе данных, однако у меня есть вторая java-программа, которая очищает мою схему и репопулирует ее всякий раз, когда она выполняется .... так что данные не останутся прежними все время.

В моей текстовый файл, формат моих данных выглядит следующим образом:

секунд, нити \ п

Я отслеживанием общего количества активных потоков моей машины.

Используя данные в текстовом файле, общем количестве активных потоков и AmCharts, я пытаюсь создать граф. Однако, похоже, это не работает. Я тщательно просмотрел свой код, но не могу понять, почему он не работает. Однако, когда я создаю график со статическими данными, он работает ... красиво, что я могу добавить.

Так что мой вопрос: что я делаю неправильно? Или что вы, ребята, думаете, проблема?

это мой HTML код:

<html> 
<head> 
<meta http-equiv="Content-Type" content ="text/html; charset = utf-8"> 
<title>Active Threads</title> 
<script src="js\amcharts.js" type="text/javascript"></script> 
<link rel="stylesheet" href="style.css" type="text/css"> 
<script type="text/javascript"> 
    /*var chartData = [{ country: "USA", visits: 4252 }, 
       { country: "China", visits: 1882 }, 
       { country: "Japan", visits: 1809 }, 
       { country: "Germany", visits: 1322 }, 
       { country: "UK", visits: 1122 }, 
       { country: "France", visits: 1114 }, 
       { country: "India", visits: 984 }, 
       { country: "Spain", visits: 711 }, 
       { country: "Netherlands", visits: 665 }, 
       { country: "Russia", visits: 580 }, 
       { country: "South Korea", visits: 443 }, 
       { country: "Canada", visits: 441 }, 
       { country: "Brazil", visits: 395 }, 
       { country: "Italy", visits: 386 }, 
       { country: "Australia", visits: 384 }, 
       { country: "Taiwan", visits: 338 }, 
       { country: "Poland", visits: 328}]; 

     window.onload = function() { 
      var chart = new AmCharts.AmSerialChart(); 
      chart.dataProvider = chartData; 
      chart.categoryField = "country"; 
      chart.margingTop = 15; 
      chart.marginLeft = 55; 
      chart.marginRight = 15; 
      chart.margingBottom = 80; 
      chart.angle = 30; 
      chart.depth3D = 15; 

      var catAxis = chart.categoryAxis; 
      catAxis.gridCount = chartData.length; 
      catAxis.labelRotation = 90; 

      var graph = new AmCharts.AmGraph(); 
      graph.balloonText = "[[category]]: [[value]]"; 
      graph.valueField = "visits" 
      graph.type = "column"; 
      graph.lineAlpha = 0; 
      graph.fillAlphas = 0.8; 
      chart.addGraph(graph); 

      chart.write('chartContainer'); 
    }*/ 

    var chart; 
    var dataProvider; 

    window.onload = function(){ 
     createChart(); 
     loadCSV("secondsAndThreads.txt"); 
    } 
    function loadCSV(file){ 
     if (window.XMLHttpRequest){ 
      var request = new XMLHttpRequest(); 
     } 
     else { 
      var request = new ActiveXObject('Microsoft.XMLHTTP'); 
     } 

     request.open('GET', file, false); 
     request.send(); 
     parseCSV(request.responseText); 
    } 
    function parseCSV(data){ 
     data = data.replace (/\r\n/g, "\n"); 
     data = data.replace (/\r/g, "\n"); 
     var rows = data.split("\n"); 
     dataProvider = []; 
     for (var i = 0; ; i < rows.length; i++){ 
      if(rows[i]){ 
       var column = rows[i].split(","); 

       var seconds = column[0]; 

       var threads = column[1]; 

       var dataObject = {seconds:seconds, threads:threads}; 

       dataProvider.push(dataObject); 
      } 
     } 
     alert(column); 
     chart.dataProvider = dataProvider; 

     chart.validateData(); 
    } 
    function createChart(){ 
     chart = new AmCharts.AmSerialChart(); 

     chart.categoryField = "seconds"; 

     var graph = new AmCharts.AmGraph(); 

     graph.valueField = "threads"; 

     graph.type = "column"; 

     chart.addGraph(graph); 

     chart.write('chartdiv'); 
    } 
</script> 

    </head> 
     <body style="background-color: #EEEEEE"> 
    <div id = "chartdiv" style= "width:900px; height:500px; background- color:#FFFFFF"></div> 
    <br> 
    <br> 
</body> 
</html> 

Я закомментировал граф со статическими данными (который работает), и не являющийся комментарий часть (вторая часть) является тот, который отказывается работать. Файл html, файл style.css и php-файл, который запрашивает мою базу данных, находятся в этом каталоге.

C:\wamp\www\amCharts\amcharts 

.js файл находится в директории

C:\wamp\www\amCharts\amcharts\js 

Я использую WAMP, и открытие файла HTML в хроме. Наконец, динамические данные НЕ совпадают с данными статической диаграммы. Статические данные из стран были теми же данными, что и учебник AmCharts. Я думаю, что это вся соответствующая информация; поэтому, если вы, ребята, можете мне помочь, я бы очень признателен.

+0

In (var i = 0;; i stef77

+0

Проблема с точкой с запятой исправлена! Еще нет графика:/ Я не уверен, я не знаю, как проверить. Я не знаю, как сделать инструкцию «print», например, вы сделали бы на C или Java, чтобы проверить, какие мои переменные содержат – engineerKev

+0

. Например, вы можете установить Firebug на Firefox. Затем вы можете сделать console.log (dataProvider); соответственно console.log (chartData); чтобы посмотреть, что происходит. Firebug - отличный инструмент для поддержки вас при отладке различными способами, стоит немного поиграть с ним. – stef77

ответ

1

Просто сделайте файл PHP, который возвращает это (или содержание в этом стиле):

var chartData = [{ country: "USA", visits: 4252 }, 
       { country: "China", visits: 1882 }, 
       { country: "Japan", visits: 1809 }, 
       { country: "Germany", visits: 1322 }, 
       { country: "UK", visits: 1122 }, 
       { country: "France", visits: 1114 }, 
       { country: "India", visits: 984 }, 
       { country: "Spain", visits: 711 }, 
       { country: "Netherlands", visits: 665 }, 
       { country: "Russia", visits: 580 }, 
       { country: "South Korea", visits: 443 }, 
       { country: "Canada", visits: 441 }, 
       { country: "Brazil", visits: 395 }, 
       { country: "Italy", visits: 386 }, 
       { country: "Australia", visits: 384 }, 
       { country: "Taiwan", visits: 338 }, 
       { country: "Poland", visits: 328}]; 

и включить его в файл, где находится плагин armcharts.