JavaScript InfoVis Toolkit Ошибка загрузки JSON из внешнего файла с помощью AJAX

У меня есть фрагмент кода, показанный ниже в моем приложении. Я пытаюсь сделать следующее: каждый раз, когда нажимается флажок, гистограмма должна обновляться.

В моей консоли ошибок я получаю:

"Ошибка: Ошибка типа: значения не определены Исходный файл:hit.js Строка: 11017.

Я попытался назначить JSON непосредственно в функции (var json = ...), и он работает как надо, но я не могу заставить его работать, загружая JSON из файла. Что я делаю неправильно?

    $(':checkbox').click(function () {
   init();

   function init()
   {
       var request = new XMLHttpRequest( );
       request.open("GET", "GetGenes.php", false);
       request.send(null);
       var json = request.response;
       console.log(request.response);
    var barChart = new $jit.BarChart({
          //id of the visualization container
          injectInto: 'infovis',
          //whether to add animations
          animate: true,
          //horizontal or vertical barcharts
          orientation: 'horizontal',
          //bars separation
          barsOffset: 0.5,
          //visualization offset
          Margin: {
            top: 5,
            left: 5,
            right: 5,
            bottom: 5
          },
          //labels offset position
          labelOffset:5,
          //bars style
          type:'stacked',
          //whether to show the aggregation of the values
          showAggregates:true,
          //whether to show the labels for the bars
          showLabels:true,
          //label styles
          Label: {
            type: 'HTML', //Native or HTML
            size: 9,
            family: 'Arial',
            color: 'black'
          },
          //tooltip options
          Tips: {
            enable: true,
            onShow: function(tip, elem) {
              tip.innerHTML = "<b>" + elem.name + "</b>: " + elem.value;
            }
          }
        });

         barChart.loadJSON(json);
   }



})

genes.php содержит:

echo "{'label': ['label 1', 'label 2', 'label 3', 'label 4'],'values': [{'label': 'date A','values': [20, 40, 15, 5]}, {'label': 'date B','values': [30, 10, 45, 10]}, {'label': 'date E','values': [38, 20, 35, 17]}, {'label': 'date F','values': [58, 10, 35, 32]}, {'label''date D','values': [55, 60, 34, 38]}, {'label': 'date C','values': [26, 40, 25, 40]}]};";

1 ответ

Решение

В возвращенном вами JSON есть ошибка:

'label''date D'

Там есть пропавшая кишка. Не знаю, решает ли это что-нибудь.

Другие вопросы по тегам