Javascript 拆分多个flot图表的嵌套JSON

Javascript 拆分多个flot图表的嵌套JSON,javascript,jquery,arrays,json,flot,Javascript,Jquery,Arrays,Json,Flot,我制作了一个简单的ajax脚本(参见代码),它从用户按下的复选框中获取ID值,查询数据库并为flot构建一个嵌套的JSON数组(为每个选择的ID包含一个数组)。基本上,一切工作都很完美,所有的数组都显示在图表中。然而,我正在寻找一个解决方案来获取数据,但是我不想在同一个图中绘制它们,而是想在一个单独的图中绘制嵌套JSON数组中的每个JSON数组 $.ajax({ type: "POST", url: "includes/getjson.php", data: $('.id

我制作了一个简单的ajax脚本(参见代码),它从用户按下的复选框中获取ID值,查询数据库并为flot构建一个嵌套的JSON数组(为每个选择的ID包含一个数组)。基本上,一切工作都很完美,所有的数组都显示在图表中。然而,我正在寻找一个解决方案来获取数据,但是我不想在同一个图中绘制它们,而是想在一个单独的图中绘制嵌套JSON数组中的每个JSON数组

$.ajax({
    type: "POST",
    url: "includes/getjson.php",
    data: $('.ids:checked').serialize(),
    dataType: "json",
    success: function(datasets){
        var options = {
            series: {
                lines: { show: true },
                points: { show: true }
            },
            xaxis: {
                mode: "time",
                timeformat: "%H:%M:%S",
                twelveHourClock: true, 
                timezone: "browser"
            },grid: {
                hoverable: true,
                clickable: true
            }
        }
        $.plot($("#placeholder"), datasets, options);
    }   
});
我在考虑动态创建所需数量的div,可能使用for循环,然后在JSON中的每个数组中循环。但我不知道该怎么做?我可以制作自己的解析器并删除外部数组,这样我就可以简单地拆分数组,但也许有更好的解决方案? 另一种解决方案可能是对复选框中的每个id输入进行.ajax调用

这里可以看到一个选择了ID的JSON示例 我刚刚做过类似的事情。 我需要一个diagram来表示我在db中拥有的每个通道变量。我所做的是将通道名称列表放入ViewBag中,并使用razor为以下图表创建正确数量的div:

<div id="chartsDiv" class="column">
    @{
        int index = 0;
        int heightDiv = 85 / (ViewBag.Channels.Count + 1);}
    @foreach (var item in ViewBag.Channels)
    {
        <div id="@item.Replace(" ","")" title="@item" class="plot" style="height:@heightDiv%;"></div>
        index++;
    }
</div>
我从ViewBag中获取所有信息,但您可以很容易地从ajax调用中获取序列化json


我希望有帮助!有什么不清楚的吗?

很遗憾,我们的解决方案不包括使用ASP.NET。这是纯PHP、HMTL和JQueryYou可以使用ajax和javascript做同样的事情。根据您的示例,我不太确定如何做
var graphsArray = [];
var dataDetail;
$(function () {
    var channelstxt = ('@ViewBag.ChannelsSerialized').replace(/&quot;/g, '"')
    var channels = JSON.parse(channelstxt);
    var seriestxt = ('@ViewBag.SeriesJson').replace(/&quot;/g, '"');
    var seriesTab = jQuery.parseJSON(seriestxt);

$.each(channels, function (index, value) {
    var elem = document.getElementById(value.toString().replace(/\s/g, ''));  
    var graph = $.plot(elem, [seriesTab[index]], getOptions(value));
    graphsArray.push(graph)});
    });