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'
Там есть пропавшая кишка. Не знаю, решает ли это что-нибудь.