1

ajaxでは、values変数に値を取得していますが、値が項目変数に取得されていません。その理由は何ですか?

私は何を間違っていますか?onload関数内では、values変数は未定義として警告されます。誰か助けてくれませんか?ありがとう。

使用しているコードは次のとおりです。

<script type="text/javascript" language="javascript">
       var values;
     $.ajax({
                cache : false,
                type: "GET",
                url: 'chartvalues',
                format:'json',
                success: function(response)
                {
                    //alert(response);
                    values = response;
                    //alert (values);
                }
            });


    window.onload = function () {
            onLoadDoc();
    }

    var chart1;


    function onLoadDoc() {
            chart1 = new cfx.Chart();chart1.getAnimations().getLoad().setEnabled(true);


            var axisY = chart1.getAxisY();
            axisY.setMin(0);
            axisY.setMax(30);

            //----Assign data fields--------

            var fields = chart1.getDataSourceSettings().getFields();
            var field1 = new cfx.FieldMap();
            field1.setName("Value");
            field1.setUsage(cfx.FieldUsage.Value);
            fields.add(field1);
            var field2 = new cfx.FieldMap();
            field2.setName("Date");
            field2.setUsage(cfx.FieldUsage.XValue);
            fields.add(field2);

            chart1.setGallery(cfx.Gallery.Bar);

            //----Set Sample Data------------
            alert (values);
            var items = values;
            //alert (items);

            chart1.setDataSource(items);
            chart1.getView3D().setEnabled(true);



            var chartDiv = document.getElementById('ChartDiv1');
            chart1.create(chartDiv);
    }



    </script>
4

2 に答える 2

1

実装に問題があります。このサンプルを見てください。

<script type="text/javascript" language="javascript">

  // Step 1
  // On window load get data using ajax
  window.onload = function () {
    getAjaxData();
  }

  // Step 2
  // After getting data, call the chart function and pass data
  function getAjaxData() {
    var values;
    $.ajax({
      cache : false,
      type  : "GET",
      url   : 'chartvalues',
      format:'json',
      success: function(values) {
        onLoadDoc(values);
      }
    });
  }

  // Step 3
  // Process your chart using the passed data
  function onLoadDoc(values) {
    var chart1;
    chart1 = new cfx.Chart();chart1.getAnimations().getLoad().setEnabled(true);
    var axisY = chart1.getAxisY();
    axisY.setMin(0);
    axisY.setMax(30);

    //----Assign data fields--------
    var fields = chart1.getDataSourceSettings().getFields();
    var field1 = new cfx.FieldMap();
    field1.setName("Value");
    field1.setUsage(cfx.FieldUsage.Value);
    fields.add(field1);
    var field2 = new cfx.FieldMap();
    field2.setName("Date");
    field2.setUsage(cfx.FieldUsage.XValue);
    fields.add(field2);

    chart1.setGallery(cfx.Gallery.Bar);

    //----Set Sample Data------------
    var items = values;
    chart1.setDataSource(items);
    chart1.getView3D().setEnabled(true);

    var chartDiv = document.getElementById('ChartDiv1');
    chart1.create(chartDiv);
  }

</script>
于 2013-08-07T11:18:55.610 に答える