WEB前端数据统计图

这几天要做数据统计,听louis介绍了一个jquery框架,现在也介绍给大家。

外国,真是一个神奇的地方。不多说。

数据报表折线图

数据报表折线图

然后这个jquery插件内置大量dome,看都能看会。

细节在后台PHP处理数据,然后返回给前端JS,一般是用JSON传值,但这个jquery插件处理数据都是用字符串,所以要特别注意一下

这样,我就把我写的PHP处理类也共享出来

<?php
class TotalAction extends Action{

   public function getData($table,$field)
   {
      //获取统计数据,实例化数据模型
	  $model = M($table);
	  //获得当天的日期
	  $nowDate = date("Y-m-d");
	  //获取七天
	  $beforDate = date("Y-m-d",strtotime('-7 day'));

	  //获取当间的数据
	  $map["del"] = array("eq","0");
	  $map[$field] = array("between",array($beforDate,$nowDate));
	  $data = $model->where($map)->field($field)->order($field." desc")->select();
	  return $this->hanldData($data,$nowDate,$beforDate,$field);
   }
   //获取时间间距
   private function space($nowDate,$beforDate)
   {

       //开始的时间
       $endday=((int)substr($nowDate,8,2));
       //结束的时间
	   $beforday = ((int)substr($beforDate,8,2));

	   for($i=$beforday;$i<$endday;$i++)
	   {
	      $daystack[] = $i;
	   }

	   return $daystack;
   }

   //对数据进行统计分类处理
   private function hanldData($data,$nowDate,$beforDate,$field)
   {
     $daystack = $this->space($nowDate,$beforDate);
     //获取日期页面
      foreach($daystack as $val)
	  {

	    foreach($data as $key=>$value)
		{
	      //获取这个日期所在在日期号
		  $day=((int)substr($value[$field],8,2));

		  //筛选出所有数据
		  if($day == $val)
		  {
		    $countDay[$val] ++;
		  }
		  else
		  {
		    if(!isset($countDay[$val]))
			{
		      $countDay[$val]= 0;
		    }
		  }
		}
	  }

  return $countDay;
 }

  //获取当前日期
  public function getDate($data,$year="",$month="")
  {
     //获取当年
	 if(empty($year))
	 {
	    $year =date("Y");
	 }
	 if(empty($month))
	 {
	    $month = date("m");
	 }
	 //开始处理数据
	 foreach($data as $key=>$value)
	 {
	    $date[] = $year."-".$month."-".$key;
	 }

	 return $this->arraytostr($date);
  }

  //获取具体数据量
  public function getNum($data)
  {
    if(is_array($data))
	 {
	    $str = implode(",",$data);
	 }
	 return $str;
  }

  //将数组转换成字符串
  private function arraytostr($array)
  {
     if(is_array($array))
	 {
	    $str = implode("\",\"",$array);
	 }
	 return $str;
  }
}
?>

类是基于thinkphp开发的,怎么用?很简单,看getData方法。只需要传入两个值,一个是要统计的表名,另一个是要统计的字段。
那个jquery插件连接在这里。 highChartsjs

发表评论

电子邮件地址不会被公开。 必填项已用*标注

(Spamcheck Enabled)