2

申し訳ありませんが、私は英語があまり得意ではありません。

jqplotアプリケーションに値を渡す方法がわかりません。

phpWebページには[{"PER": "23"}、{"PER": "47"}、{"PER": "86"}、{"PER": "25"}、{"PER": "74"}]mysqlサーバーから来ました。

テーブルには1つの列があり、値は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を助けてください

ありがとう!

編集

これがテーブルです。コンテンツにはテーブルが1つだけあります。PERの値を渡したい。

ENTERPRISE PERIOD EPS STOCKPRICE PER

232 232 23 432 23

236 56 65 43 47

574 53 45 75 86

453 45 45265 25

46 63 67 45 74

テストのために一時的に値を作成しました。

4

1 に答える 1

2

問題は、(関連する)$output配列からのjsonデータの形式です。あなたはそれらの「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 に答える