2017-02-22 14 views
1

im получение данных с использованием функции apache. Я хочу показать данные в графике слияния. как показать динамические данные в диаграммах? этот код работает для другой сторонней apis, но не с этим api.не удалось получить данные из api, чтобы отобразить данные на диаграмме

выборка данных 172,70

апи

https://api.thingspeak.com/channels/23037xxx/fields/field1/last?api_key=EG628M4J9SP76xxx

<script> 
     FusionCharts.ready(function() { 
      LoadChart(); 
     }); 
     function LoadChart() { 
      $.ajax({ 
       url: 'https://api.thingspeak.com/channels/230xxx/fields/field1/last?api_key=EG628M4J9SP76xxx', // local address 
       type: 'GET', 
       crossDomain: true, 
       success: function (data) { 
        if (data.success) { 
         var chlorine = data; 
         var phfusioncharts = new FusionCharts({ 
          type: 'angulargauge', 
          renderAt: 'ph-container', 
          width: '450', 
          height: '300', 
          dataFormat: 'json', 
          dataSource: { 
           "chart": { 
            "caption": "Chlorine ", 
            "lowerLimit": "0", 
            "upperLimit": "14", 
            "showValue": "1", 
            "valueBelowPivot": "1", 
            "theme": "fint" 
           }, 
           "colorRange": { 
            "color": [{ 
             "minValue": "0", 
             "maxValue": "5", 
             "code": "#6baa01" 
            }, { 
             "minValue": "5", 
             "maxValue": "10", 
             "code": "#f8bd19" 
            }, { 
             "minValue": "10", 
             "maxValue": "14", 
             "code": "#e44a00" 
            }] 
           }, 
           "dials": { 
            "dial": [{ 
             "value": chlorine 
            }] 
           } 
          } 
         }); 

         phfusioncharts.render(); 
        } 
       } 
      }); 
     } 
    </script> 
</head> 
<body> 

    <table class=""> 
     <tr> 
      <td><div id="ph-container" style="float:left;"></div></td> 

     </tr> 
    </table> 
+0

Могли бы вы быть более конкретным "_this код не working_"? Какая у вас ошибка? Измените свой вопрос и добавьте дополнительную информацию. – Lucky

+0

im не получает никаких ошибок от console.its, не отображающих никаких диаграмм. – Swapna

+0

Пожалуйста, воссоздайте свой код в jsfiddle.net и разместите здесь ссылку. – Lucky

ответ

1

Вам не нужно проверить, если data.success. Ваш api отвечает только значением float. Таким образом, data.success не определено. Он никогда не входит в условие if.

Проверьте демо: http://jsfiddle.net/x5FBh/1201/

JS:

FusionCharts.ready(function() { 
    LoadChart(); 
}); 

function LoadChart() { 
    $.ajax({ 
    url: 'https://api.thingspeak.com/channels/230372/fields/field1/last?api_key=EG628M4J9SP769UT', // local address 
    type: 'GET', 
    crossDomain: true, 
    success: function (data) { 
     console.log('xhr success') 
     //if (data.success) { 
     console.log("success"); 
     var chlorine = data; 
     var phfusioncharts = new FusionCharts({ 
      type: 'angulargauge', 
      renderAt: 'ph-container', 
      width: '450', 
      height: '300', 
      dataFormat: 'json', 
      dataSource: { 
      "chart": { 
       "caption": "Chlorine ", 
       "lowerLimit": "0", 
       "upperLimit": "14", 
       "showValue": "1", 
       "valueBelowPivot": "1", 
       "theme": "fint" 
      }, 
      "colorRange": { 
       "color": [{ 
       "minValue": "0", 
       "maxValue": "5", 
       "code": "#6baa01" 
       }, { 
       "minValue": "5", 
       "maxValue": "10", 
       "code": "#f8bd19" 
       }, { 
       "minValue": "10", 
       "maxValue": "14", 
       "code": "#e44a00" 
       }] 
      }, 
      "dials": { 
       "dial": [{ 
       "value": "22" 
       }] 
      } 
      } 
     }); 

     phfusioncharts.render(); 
     //} 
    } 
    }); 
} 
+0

спасибо, его работа для меня ... – Swapna

+0

может у вас рассказать мне, как обновить график за каждые 30 секунд. – Swapna

+0

Добро пожаловать. Вам просто нужно использовать 'setInterval()' метод в javascript и вызывать метод 'LoadChart()' каждые 'n' секунд. См. Здесь http://stackoverflow.com/questions/21638574/run-a-function-every-30-seconds-javascript. Похоже, 'setInterval (function() { LoadChart()}, 30000)' Don Не забудьте проверить отметку в левой части моего ответа, чтобы принять ее. – Lucky