0

私はjqplotを使用しており、次のPHPコードで配列を構築しました

if($fiveRes){
    $lastNum = mysql_num_rows($fiveRes);

    $testarray = array();

    while($row = mysql_fetch_array($fiveRes, MYSQL_ASSOC)) {
        $testarray[] = array($row['GameDate'],  floatval($row['WKP']));
    }

    echo json_encode($testarray);

}

このコードは、jqplot 関数に挿入する必要がある正しいコードを出力します。上記のコードで生成された配列は次のとおりです。

[["2011-12-24",0],["2011-12-19",14],["2011-12-08",22],["2011-12-04",14],["2011-11-27",12]]

したがって、現在、この配列を画面に出力してから、jQuery .text() を使用して文字列をキャプチャし、変数内に配置しています。配列文字列を割り当てた var をエコーアウトでき、正しく動作しますが、それを jqplot 関数に渡すと何もしません。

var p1array = $('.col.first .parray').text();

alert(p1array); //Alerts the correct array formatted like above.

    var plot1 = $.jqplot('jqplot0', [p1array], {
          title:'Last 5 Fantasy Points',
          axes:{
            xaxis:{
              renderer:$.jqplot.DateAxisRenderer,
              tickOptions:{
                formatString:'%b %#d'
              } 
            },
            yaxis:{
              tickOptions:{
                formatString:''
                }
            }
          },
          highlighter: {
            show: true,
            sizeAdjust: 7.5
          },
          cursor: {
            show: false
          }
      });

さらに複雑にするために、PHP が生成する文字列をコピーし、それを JS の変数にハードコードすると、機能します。を使用して取得した文字列を jqplot プラグインが評価しない理由を教えて$(this).text();ください。

これが私がモデリングしているjQplotの例です: http://www.jqplot.com/tests/cursor-highlighter.php

4

2 に答える 2

0

[p1array] を中かっこなしで直接使用してみてください... p1array と同じように動作するはずです

于 2012-08-09T16:43:08.227 に答える
0

この方法を使用すると、この問題を解決できました。jQuery を使用して印刷された変数にアクセスする代わりに、PHP ページの下部に少しの JavaScript を挿入して、PHP でローカル変数を取得し、それを使用して jQplot 関数に渡しました。

PHP 文字列を JavaScript 変数に渡す (および改行をエスケープする)

于 2012-08-09T16:18:45.410 に答える