这几天要做数据统计,听louis介绍了一个jquery框架,现在也介绍给大家。
外国,真是一个神奇的地方。不多说。
数据报表折线图
然后这个jquery插件内置大量dome,看都能看会。
细节在后台PHP处理数据,然后返回给前端JS,一般是用JSON传值,但这个jquery插件处理数据都是用字符串,所以要特别注意一下
这样,我就把我写的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
{
$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