Диаграмма. js динамическое обновление данных с использованием переменной - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь обновить мою диаграмму (диаграмму. js), используя переменную в качестве данных (извлекается с использованием ответа Ajax).

Работает - когда $data добавляется вручную (не как переменная)

    $.ajax({
        type: "POST",
        url: "getCountryData.php",
        data: {url: url},
        success: function(data){

            casesChart.data.datasets[0].data = ['0','0','0','0','0','0','0','0','0','2','2','2','2','2','2','2','3','3','3','3','3','3','3','3','3','3','3','3','3','3','20','62','155','229','322','453','655','888','1128','1694','2036','2502','3089','3858','4636','5883','7375','9172','10149','12462','12462','17660','21157','24747','27980','31506','35713','41035','47021','53578','59138','63927','69176','74386','80589','86498','92472','97689','101739','105792','110574'];;

            casesChart.update();
        }

    })

[working version 1

Однако, когда я использовал переменную data из PHP ajax ответ, результат совершенно другой, но форматы точно такие же.

Не работает

       $.ajax({
        type: "POST",
        url: "getCountryData.php",
        data: {url: url},
        success: function(data){

            console.log(data)
            casesChart.data.datasets[0].data = data    
            casesChart.update();
        }  
    })

Contents of my data variable not working chart

Любой совет или руководство в правильном направлении было бы здорово, этот потерян для меня!

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Проблема в моем конкретном случае заключалась в том, что массив выводился в виде строки, а не объекта JavaScript.

Мне удалось исправить это с помощью команды JS Split String, используя запятую в качестве разделителя, которая затем после тестирования в console.log подтвердила, что это снова объект Array.

0 голосов
/ 02 апреля 2020

На обновленном графике вы видите только первые значения ваших новых данных.

casesChart.data.datasets[0].data = data 

Кажется, что данные и метки не совпадают c. Вам, вероятно, также необходимо обновить labels. Их количество должно совпадать с количеством значений, содержащихся в data.

casesChart.data.labels = <new labels>
...