如何在codeigniter中的js中使用函数参数获取值

时间:2013-08-07 11:08:33

标签: javascript ajax codeigniter

在ajax中,我得到了values变量的值,但这些值没有进入items变量。这是什么原因?

我做错了什么?在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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

为您提供补丁参考。在页面的任何位置创建隐藏字段:

<input type="hidden" id="hidden_values">

现在,在ajax的成功选项中:

success: function(response)
{
    //alert(response);
    values = response;
    //alert (values);
    $("#hidden_values").val(values);  //to save the values in a hidden field in the page to retrieve later
}

在onLoadDoc函数中:

alert ( $("#hidden_values").val(); );
var items = $("#hidden_values").val();
相关问题