0

私は morris.js ドーナツ チャートを介してデータを表示することに取り組んでいます。これらのデータは、PHP と ajax を介して MySQL データベースから取得されます。

コードに表示するデータを入力する典型的な例は正常に機能しています

Morris.Donut({
            element: 'donut-example',
            data: [
              { label: "Download Sales", value: 12 },
              { label: "In-Store Sales", value: 30 },
              { label: "Mail-Order Sales", value: 20 }]
        });

ただし、データベースからデータを呼び出すと、グラフが表示されません。さらに、firebug はエラーを表示しません。

これは私がPHPから得た出力です:

[{label: "4 pairs",value: "9"},{label: "3 pairs",value: "9"},{label: "2 pairs",value: "6"},{label: "5 pairs",value: "3"},{label: "6 pairs",value: "2"},{label: "1 pair",value: "2"}]

実際、Morris.Donut(); 内にコピーして、この出力を試しました。機能し、うまくいきました!

そして、これは Ajax コードです (まったく機能しません)。

$.ajax({
    url: "ajax/modas_pares.php",
    type: "post",
    data: {lotto: 'the_lotto', limit: 20},
    success : function (resp){
        //alert(resp);
        Morris.Donut({
            element: 'donut-example',
            data: resp
        });
    },
    error: function(jqXHR, textStatus, ex) {
      console.log(textStatus + "," + ex + "," + jqXHR.responseText);
    }
});

ただし、次のコードがある場合:

$.ajax({
            url: "ajax/modas_pares.php",
            cache: false,
            type: "post",
            data: {lotto: 'the_lotto', limit: 20},
            //dataType: "json",
            timeout:3000,
            success : function (resp){
                //var column_data = $.parseJSON(resp);
                //alert(resp);
                Morris.Donut({
                    element: 'donut-example',
                    data: [{label: "3 pairs",value: "6"},{label: "4 pairs",value: "5"},{label: "2 pairs",value: "5"},{label: "5 pairs",value: "3"},{label: "1 pair",value: "1"},{label: "6 pairs",value: "1"}]
                });
            },
            error: function(jqXHR, textStatus, ex) {
              console.log(textStatus + "," + ex + "," + jqXHR.responseText);
            }
        });

それはうまくいきます!!!

私が得られないのは、変数を介してコードを渡そうとした場合、それが機能しないということです!! :

$string='[{label: "4 pairs",value: "9"},{label: "3 pairs",value: "9"},{label: "2 pairs",value: "6"},{label: "5 pairs",value: "3"},{label: "6 pairs",value: "2"},{label: "1 pair",value: "2"}]';
?>

$.ajax({
            url: "ajax/modas_pares.php",
            cache: false,
            type: "post",
            data: {lotto: 'the_lotto', limit: 20},
            //dataType: "json",
            timeout:3000,
            success : function (resp){
                //var column_data = $.parseJSON(resp);
                //alert(resp);
                Morris.Donut({
                    element: 'donut-example',
                    data: '<?php echo $string ?>'
                });
            },
            error: function(jqXHR, textStatus, ex) {
              console.log(textStatus + "," + ex + "," + jqXHR.responseText);
            }
        });

動作しません:(php変数またはajaxを介したphpスクリプトから取得した場合:/

私は何が欠けていますか?どうすればこれを修正できますか? どうして?????

4

3 に答える 3

0

私も同じ問題を抱えていました。典型的な例はうまくいきましたが、データを動的に取り込むときはうまくいきませんでした。私は次のようにそれを解決しました:

setTimeout(function () {
        Morris.Donut({
            element: 'donut-example',
            data: newArray
        },2000);

    });
于 2016-11-06T07:36:17.903 に答える