0

我希望使用 mysql 数据呈现多个图表,根据特定搜索,会有更多或更少的图表。我已经成功创建了一个图表,并且我的 php 文件很好地呼应了所需的 json 格式。

现在,我想要的是能够遍历一个数组并根据解析到 php 的数组 vales 绘制新的图表,从而提供不同的 json 数据来呈现。

顺便说一句,我的 javasript 非常有限,所以我的代码和想法如下:

<script type="text/javascript">
    $(function () {
        var chart;
        var venue = <?php echo json_encode($venue_name); ?>; /* parsed to php file */
        var distances = <?php echo json_encode($data); ?>; /* array to be looped over */
        $(document).ready(function() {

            var options = {
                    ....
                series: []
                    ....
             };

             //
            $.each(distances, function() {
               $.each(this, function(name, value) {
               // do some ajax magic here:... 
                GET 'myphpfile.php?venue='+venue+'&'+distances

                  function drawNewChart(){
                      $('#mainSite').append('<div id="container" style="float:left; display:inline"></div>');

                chart = new Highcharts.Chart(options); 
        });
    });        

    </script>

我了解到的是,我无法循环包含已完成 php 和 jquery 的包含 php 文件...

4

2 回答 2

0

这将创建其他图表。每次你想创建新图表时,你必须像我一样给图表命名chart2

粘贴此波纹管,它将为您提供其他图表。

   <script type="text/javascript">
$(function () {
    var chart2;
    var venue2 = <?php echo json_encode($venue_name); ?>; /* <---use other variable here of $venue_name */
    var distances2 = <?php echo json_encode($data); ?>; /* <---use other variable of $data */
    $(document).ready(function() {

        var options = {
                ....
            series: []
                ....
         };

         //
        $.each(distances2, function() {
           $.each(this, function(name, value) {
           // do some ajax magic here:... 
            GET 'myphpfile.php?venue2='+venue2+'&'+distances2

              function drawNewChart(){
                  $('#mainSite').append('<div id="container" style="float:left; display:inline"></div>');

            chart2 = new Highcharts.Chart(options); 
    });
});        

</script>
于 2013-01-20T11:09:15.183 回答
0

您可以将图表推送到数组,而不是使用许多变量。

var charts = [];
charts.push(new Highcharts(options));

然后你可以避免使用索引等。

于 2013-02-01T11:32:24.363 回答