解决方案 »

  1.   


        $('#container').highcharts({
            title: {
                text: 园区用电统计一览表</a>'
            },
            xAxis: {
             categories: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
            },
    yAxis:{
    title:{
    text:'{$title}(单位:{$unit})'
    }
    },
            series:{$statistics}
        });   你代码太多,看不下去,静态代码贴出来了!数据放到series里就行了,这里的$statistics是后台生成传过来的,自己在传过来之前打印$statistics看看是不是json数据就行了
      

  2.   

    我已经打印了下,但是出不来,你看下 这么的代码
    require ('inc/config.php');
    require (MYSQL);
    $city = $_POST['city'] ? $_POST['city'] : 0;
    $start_time = $_POST['start_time'] ? $_POST['start_time'] : '';
    $end_time = $_POST['end_time'] ? $_POST['end_time'] : '';
    $sql = '';
    if($start_time && $end_time){
        $sql = " fcj.city_id='".$city."' AND fcj.fang_time >='".$start_time."' AND fcj.fang_time<='".$_POST['end_time']."'";
    }else if($start_time)
    {    
        $sql = " fcj.city_id='".$city."' AND fcj.fang_time ='".$start_time."'";
    }else if($end_time)
    {
        $sql = " fcj.city_id='".$city."' AND fcj.fang_time ='".$end_time."'";
    }else
    {
        $sql = " fcj.city_id='".$city."'";
    }
    $q = "SELECT fcj.fang_time, fcj.area, fcj.taoshu FROM f_chengjiao AS fcj LEFT JOIN f_city AS fc USING (city_id) WHERE ".$sql." GROUP BY fcj.fang_time";
    $r = mysqli_query ($conn, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($conn));
    if (@mysqli_num_rows($r) > 0) {
        while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
           $date_list[] = $row[0];  //获取时间  
           $area_list[] = intval($row[1]);  //获取面积,并转换为数字整型    
           $num_list[] = intval($row[2]); //获取套数,并转换为数字整型
           echo json_encode($area_list);
        }
        mysqli_free_result ($r);

    mysqli_close($conn);
    ?>
      

  3.   

    你的 echo json_encode($area_list); 在读取查询数据的循环内
    这样将输出多组 json 格式数据,但对于 js 而言却是错误的
    所以要移到循环外
      

  4.   

    你有
             var data = eval('('+data+')');
             for(var i=0;i<data.length;i++)
             {
                 date_list[date_list.length] = data[i].date;
                 if(data[i].num=='')data[i].num=0;
                 num_list[num_list.length] = parseInt(data[i].num);
                 area_list[area_list.length] = parseFloat(data[i].area);
             }
    显然 data 是 json
    而 php 是
        while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
           $date_list[] = $row[0];  //获取时间  
           $area_list[] = intval($row[1]);  //获取面积,并转换为数字整型    
           $num_list[] = intval($row[2]); //获取套数,并转换为数字整型
           echo json_encode($area_list);
        }
    如果 echo json_encode($area_list); 仅仅是测试用的话,那你连数据都没有输出
    按照 js 要去的数据格式,至少应为
        while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
           $data[] = array('date' => $row[0], 'num' => $row[1], 'area' => $row[2]);
        }
        echo json_encode($data);虽然你并不欢迎我的帮助,但我还是忍不住要说两句
      

  5.   


    我没有不欢迎,我都不知道这句话是从什么地方说起
    你上面修过方法我之前也发现了,一样不能让走势图出现我是写法是
        while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
    $arr[] = array(         
    $row[0],intval($row[1]),intval($row[2])     
    );
           //$date_list[] = $row[0];  //获取时间  
       //$area_list[] = intval($row[1]);  //获取面积,并转换为数字整型    
       //$num_list[] = intval($row[2]); //获取套数,并转换为数字整型
       
        }  $data = json_encode($arr); 
     echo $data;我现在都纠结了,不知道错是在php还是在ajax这块了
      

  6.   

    转换到 json 时,下标数组转换为数组,关联数组转换为对象
    你的代码需要的是对象