原来有这么一段js代码(网页上面弄的一段代码):
$(document).ready(function() {
        FusionCharts.printManager.enabled(true);
        var chartObj = new FusionCharts( 'swf/Column2D.swf',  'flash-chart', '500',  '350');
        chartObj.setJSONData({
         "chart":{ "caption":"Company Revenue","showpercentvalues":"1" },         "data":[
                { "label":"移动2G投资", "value":"10" },
                { "label":"移动3G投资", "value":"20"  },
                { "label":"3G通信收入", "value":"10" } ,
                { "label":"3G用户出账用户", "value":"20" } ,
                { "label":"2G出账用户", "value":"40" } ,
          ]
        });
        chartObj.render('column2D_1');});现在我想将其中chartObj.setJSONData后面的json格式的数据部分在另外一个php里面生成,假如就弄成json.php:
$str = "{
         "chart":{ "caption":"Company Revenue","showpercentvalues":"1" },         "data":[
                { "label":"移动2G投资", "value":"10" },
                { "label":"移动3G投资", "value":"20"  },
                { "label":"3G通信收入", "value":"10" } ,
                { "label":"3G用户出账用户", "value":"20" } ,
                { "label":"2G出账用户", "value":"40" } ,
          ]
        }";那json.php应该怎么把$str的内容传给js,而js应该改成怎么接收? 我看有的写成$.ajax(...)啥的。jsjsonphp

解决方案 »

  1.   


    $(document).ready(function () {
    $.get('请求地址' , '要提交的数据' , function(data){
    FusionCharts.printManager.enabled(true);
    var chartObj = new FusionCharts('swf/Column2D.swf', 'flash-chart', '500', '350');
    chartObj.setJSONData(data);
    chartObj.render('column2D_1');
    } , 'json');
    });
      

  2.   


    回2L,在网站上面搜索学习了一下以后,我打算在php里面传一个json的对象给js,代码如下:
    <?php
            include ("/var/www/html/test/JSON.php");
            $json = new Services_JSON();        $arr = array("caption"=>"Company Revenue", "showpercentvalues"=>"1");
    //      $chart = array("chart"=>$arr);        $arr1 = array("label"=>"pay for 3G", "value"=>"10");
            $arr2 = array("label"=>"pay for 4G", "value"=>"20");
            $arr3 = array("label"=>"pay for 5G", "value"=>"10");
            $arr4 = array("label"=>"pay for 6G", "value"=>"20");
            $arr5 = array("label"=>"pay for 7G", "value"=>"40");
            $data = array($arr1, $arr2, $arr3, $arr4, $arr5);        $str = array("chart"=>$arr, "data"=>$data);        $json = json_encode($str);
            echo $json;
    ?>
    执行结果如下:
    [root@localhost php_for_data]# php column2D_1_1.php
    {"chart":{"caption":"Company Revenue","showpercentvalues":"1"},"data":[{"label":"pay for 3G","value":"10"},{"label":"pay for 4G","value":"20"},{"label":"pay for 5G","value":"10"},{"label":"pay for 6G","value":"20"},{"label":"pay for 7G","value":"40"}]}
    这样应该是就是初始代码里面的那一串了。在上面的代码中,我new了一个json对象。
    $json = new Services_JSON();
    打算把这个对象传给js。
    这样该如何做?
      

  3.   


    $(document).ready(function () {
        $.getJSON('PHP文件地址' , function(data){
            FusionCharts.printManager.enabled(true);
            var chartObj = new FusionCharts('swf/Column2D.swf', 'flash-chart', '500', '350');
            chartObj.setJSONData(data);
            chartObj.render('column2D_1');
        });
    });
      

  4.   


    传值成功了,并且画图也成功了,谢谢了。
    对了,你对用json格式的数据画fusioncharts的图了解的多不? 因为我看这个程序,传值后并没做其他处理就画图成功了,而fusioncharts自带的代码用例(用xml的)感觉很复杂,设置这设置那的。或者你知道哪里有关于fusioncharts和json结合的文档或资料? 介绍下吧。