Формат данных JSON для Flotcharts - PullRequest
1 голос
/ 14 октября 2019

Я использую потоковые диаграммы и мне нужно отформатировать данные JSON из поста PHP. Мне нужен следующий формат:

[2, 16, 0, 12, 22, 5, -10, 5, 15, 2, 11, 55]

Команда javascript для отображения диаграмм:

_initSparklineChart($('#kt_chart_sales_by_apps_1_2'), [2, 16, 0, 12, 22, 5, -10, 5, 15, 2, 11 , 66], KTApp.getStateColor('danger'), 2);

Я получаю данные, используя сообщение, подобное этому:

for ($y = 1; $y <= 4; $y++) {       
    for ($x = 1; $x <= 12; $x++) {    
        $array[$y][$x] = rand(1,100);       
    }    
}

$returnArray["message"]     = "Data Retrieved";
$returnArray["data"]        = $array;
$returnArray["count"]       = $count;

echo json_encode($returnArray); 

Так что код javascript будет примерно таким. Кто-нибудь может мне помочь с этим?

$.ajax({
    type: "POST",
    url: "./demo2/widgets/functions/production.php",
    data: {mode:mode,date:date},
    cache: false,
    dataType: "json",
    success: function(response){
        var dataset1 = response["data"];

        var dataset2 = [];
        for (var i = 0; i < dataset1.length; i++) {
            console.log(dataset1[i]);
            dataset2.push([dataset1[i]]);
        }

        _initSparklineChart($('#kt_chart_sales_by_apps_1_1'), [dataset2], KTApp.getStateColor('success'), 2);
    }
});

Рабочая JS

var DataSet1    = {};
var DataSet2    = {};

$.each(response["data"], function( index, value ) {

    $.each(value, function( key, val ) {

        DataSet1[key] = val;  

    });

    DataSet2[index] = Object.values(DataSet1);  

});

$.each(DataSet2, function( index, value ) {

    _initSparklineChart($('#kt_chart_sales_by_apps_1_'+index), value, KTApp.getStateColor('success'), 2);

});

1 Ответ

1 голос
/ 16 октября 2019

Я все еще не совсем уверен, что вы спрашиваете, но из того, что я понял, вы хотите инициализировать несколько диаграмм, например, #kt_chart_sales_by_apps_1_1, #kt_chart_sales_by_apps_1_2, #kt_chart_sales_by_apps_1_3 и т. Д.

Еслипоэтому в вашем success обратном вызове должно работать следующее:

success: function(response) {
    var datasets = response["data"];

    for (var set in datasets) {
        _initSparklineChart($('#kt_chart_sales_by_apps_1_'+set), datasets[set], KTApp.getStateColor('success'), 2);
    }
}

Маленький пример:

var datasets = {
    "1": [2, 16, 0, 12, 22, 5, -10, 5, 15, 2, 11 , 66],
    "2": [12, 11, 5, 22, 16, -10, 66, 5, 2, 2, 15, 0],
    "3": [5, 0, 11, 2, 15, 12, 2, 66, 5, -10, 22, 16],
    "4": [5, -10, 0, 2, 16, 22, 66, 12, 5, 15, 2, 11]
}

for (var set in datasets) {
    console.log("Using ID: #kt_chart_sales_by_apps_1_" + set, "with data set:", datasets[set]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...