2

对不起,我英语不太好。

我不知道如何将值传递给 jqplot 应用程序。

php 网页显示 [{"PER":"23"},{"PER":"47"},{"PER":"86"},{"PER":"25"},{"PER": "74"}] 来自 mysql 服务器。

该表有一列,值为 23、47、86、25、74

这是php代码。

<?php
mysql_connect("localhost","root","autoset");
mysql_select_db("test");

$q=mysql_query("SELECT PER FROM Evaluation");
while($e=mysql_fetch_assoc($q))
    $output[]=$e;

print(json_encode($output)); 

mysql_close();

?>

这是 html 示例文件。

       $(document).ready(function(){
        
        var ajaxDataRenderer = function(url, plot) {
            var ret = null;
            $.ajax({
                // have to use synchronous here, else returns before data is fetched
                async: false,
                url: url,
                dataType:'json',
                success: function(data) {
                    ret = data;
                }
            });
            return ret;
        };
     
        var jsonurl ="http://127.0.0.1/index.php"; //"../report/jsondata.txt";

        plot1 = $.jqplot("chart2", jsonurl, {
            title: 'AJAX JSON Data Renderer',
            dataRenderer: ajaxDataRenderer,
    
            animate: true,
            animateReplot: true,
            cursor: {
              show: true,
              zoom: true,
              looseZoom: true,
              showTooltip: false,
 
            },
            series:[   
              {
                label:'a',
                color: '#FF0000',
                rendererOptions: {
                  animation: {
                    speed: 2000
                  }
                }
              },
              {
                  label:'b',
                  color: '#0000FF',
                  rendererOptions: {
                    animation: {
                      speed: 2000
                    }
                  }
                }
            ],
            
            
            axesDefaults: {
              pad: 0
            },
            axes: {
              xaxis: {
                label: "Period",
                renderer: $.jqplot.CategoryAxisRenderer,
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,

              },
              yaxis: {
                label: "PER",
                tickOptions: {
                  formatString: "%d"
                },
                rendererOptions: {
                  //forceTickAt0: true
                }
              },
              y2axis: {
                tickOptions: {
                  formatString: "%d"
                },
                rendererOptions: {
                  alignTicks: true
                  //forceTickAt0: true
                }
              }
            },
            
            
            highlighter: {
              show: true,
              showLabel: true, 
              tooltipAxes: 'y',
              sizeAdjust: 7.5 , tooltipLocation : 'ne'
            },
            
            
            legend: {
              show: true,
              location: 'sw',
              placement: 'outside'
            }  
          });
    });

当我使用

var jsonurl ="../report/jsondata.txt"; it worked. 

jsondata.txt 包括 [[ 23, 47, 86, 25, 74 ]]。

但是当我使用另一个时它没有。我想从服务器获取值。我想传递值存在问题。

请具体帮助TT

谢谢!

编辑

这是桌子。内容只有一张表。我想传递 PER 的值。

企业时期每股收益股票价格

232 232 23 432 23

236 56 65 43 47

574 53 45 75 86

453 45 45 265 25

46 63 67 45 74

我只是暂时设定值来测试。

4

1 回答 1

2

问题是您的 json 数据的格式,它来自(关联) $output 数组。你不想要那些“PER”!尝试替换这些代码行:

while($e=mysql_fetch_assoc($q))
    $output[]=$e;

print(json_encode($output)); 

用这些:

while($e=mysql_fetch_assoc($q))
    $output[]=$e["PER"];

print ('['.json_encode($output).']'); 

这会将 $output 从关联数组更改为标准整数数组。

并且打印行在 json 数据周围添加了额外的方括号——这是 jqplot 需要的。

于 2012-10-08T14:36:37.590 回答