fullCalendar动态获取数据


fullCalendar http://fullcalendar.io/docs/event_data/events_function
$('#calendar').fullCalendar({
	header: {
        left: 'prev,next',
        center: 'title',
        right: 'today'
    },
    defaultDate: '2016-08-20',
    lang: 'zh-cn',
    buttonIcons: false, // show the prev/next text
    weekMode: 'liquid',
    events: function(start,end,timezone, callback) {
    	var date = this.getDate().format('YYYY-MM');
        $.ajax({
            url: '?m=home&c=product&a=ajax&todo=ajaxGetProductMonthPrice',
            dataType: 'json',
            data: {
                id:{$id},
                date: date,
            },
            success: function(json) { // 获取当前月的数据
                var events = [];
                if (json.status == '1') {
                    $.each(json.info,function(i,c) {
                        if (c.is_special == '1') {
                            events.push({
                                title: '¥'+c.price+','+c.stock+'套',
                                start: c.date , // will be parsed
                                color: '#FFEBAC'
                            });
                        } else {
                            events.push({
                                title: '¥'+c.price+','+c.stock+'套',
                                start: c.date , // will be parsed
                                color: '#BEEABE'
                            });
                        }
                    });
                }
                callback(events);
            }
        });
    }
});
var date = this.getDate().format('YYYY-MM');
每次点击上一月,下一月都会获取月份。
把月份传入后台,获取数据。
$id  = trim($_REQUEST['id']);
$date= trim($_REQUEST['date']);
$r = $this->product_db->get_one(array('id'=>$id));
if (empty($r)) { // 不存在
    $rdata['status'] = 2;
    $rdata['msg']    = '房源不存在';
} else {
    $rdata['status'] = 1;
    $rdata['msg']    = '获取成功';
    // 获取目标月份对应的数据
    $special_type = $r['special_type']; // 0 无特价 1 周五,周六 2 周六,周日 3 周五,周六,周日
    $special_price= $r['special_price'];
    $price        = $r['price'];
    $stock        = $r['num'];
    $days = get_day($date,'2');
    foreach ($days as $k => $day) {
    	$week = get_week($day);
    	$info[$k]['date'] = $day;
    	switch ($special_type) {
    		case '0':
    			$info[$k]['price'] = $price;
    			$info[$k]['is_special']= '0';
    			break;
    		case '1':
    			if (in_array($week,array('星期五','星期六'))) {
    				$info[$k]['price'] = $special_price;
    				$info[$k]['is_special']= '1';
    			} else {
    				$info[$k]['price'] = $price;
    				$info[$k]['is_special']= '0';
    			}
    			break;
    		case '2':
    			if (in_array($week,array('星期六','星期日'))) {
    				$info[$k]['price'] = $special_price;
    				$info[$k]['is_special']= '1';
    			} else {
    				$info[$k]['price'] = $price;
    				$info[$k]['is_special']= '0';
    			}
    			break;
    		case '3':
    			if (in_array($week,array('星期五','星期六','星期日'))) {
    				$info[$k]['price'] = $special_price;
    				$info[$k]['is_special']= '1';
    			} else {
    				$info[$k]['price'] = $price;
    				$info[$k]['is_special']= '0';
    			}
    			break;
    		default:
    			break;
    	}
    	$info[$k]['isRent'] = '1'; // 1表示可租
    	$info[$k]['stock']  = $stock;
    }
    $rdata['info'] = $info;
}
exit(json_encode($rdata));
break;
get_day方法,获取当月的每天日期
/**
 * 获取当月天数
 * add by Jim
 * @param  $date
 * @param  $rtype  1天数 2具体日期数组
 * @return
 */
function get_day( $date ,$rtype = '1')
{
    $tem = explode('-' , $date);       //切割日期  得到年份和月份
    $year = $tem['0'];
    $month = $tem['1'];
    if( in_array($month , array( 1 , 3 , 5 , 7 , 8 , 01 , 03 , 05 , 07 , 08 , 10 , 12)))
    {
        // $text = $year.'年的'.$month.'月有31天';
        $text = '31';
    }
    elseif( $month == 2 )
    {
        if ( $year%400 == 0  || ($year%4 == 0 && $year%100 !== 0) )        //判断是否是闰年
        {
            // $text = $year.'年的'.$month.'月有29天';
            $text = '29';
        }
        else{
            // $text = $year.'年的'.$month.'月有28天';
            $text = '28';
        }
    }
    else{
        // $text = $year.'年的'.$month.'月有30天';
        $text = '30';
    }
    if ($rtype == '2') {
        for ($i = 1; $i <= $text ; $i ++ ) {
        	if ($i < 10) {
        		$i = '0'.$i;
        	}
            $r[] = $year."-".$month."-".$i;
        }
    } else {
        $r = $text;
    }
    return $r;
}
get_week获取具体日期对应的星期几,根据后台数据,设置返回信息。周末特价。
/**
 * 获取星期几
 * add by Jim
 */
function get_week($date){
    //强制转换日期格式
    $date_str=date('Y-m-d',strtotime($date));
    //封装成数组
    $arr=explode("-", $date_str);
    //参数赋值
    //年
    $year=$arr[0];
    //月,输出2位整型,不够2位右对齐
    $month=sprintf('%02d',$arr[1]);
    //日,输出2位整型,不够2位右对齐
    $day=sprintf('%02d',$arr[2]);
    //时分秒默认赋值为0;
    $hour = $minute = $second = 0;   
    //转换成时间戳
    $strap = mktime($hour,$minute,$second,$month,$day,$year);
    //获取数字型星期几
    $number_wk=date("w",$strap);
    //自定义星期数组
    // $weekArr=array("7","1","2","3","4","5","6");
    $weekArr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
    //获取数字对应的星期
    return $weekArr[$number_wk];
}
												
											fullCalendar动态获取数据的更多相关文章
- highcharts动态获取数据生成图表问题
		
动态获取数据说白点就是从后台传值到前台,前台把这些值赋值给x轴与y轴(这里指的是你X轴与Y轴都是变化的数据,如果你的X轴是固定的,像时间等等的那就另说). 柱状图的动态传值: //获取后台数据 va ...
 - echarts通过ajax动态获取数据的方法
		
echarts表格的数据一般都需要动态获取,所以总结了一下通过ajax动态获取数据的操作: 插入的方法应该不止一种,我也是接触不久,所以刚学会了一种插入方法: 灵感和经验来自:https://www. ...
 - React使用jquery方式动态获取数据
		
好久没写react了,今天有空写一下来react实现实时请求数据,并刷新数据的小demo. 首先我还是选择了jquery方式中自带的ajax获取数据,首先要引用所需的js包 接下来要写一个自定义的js ...
 - ECharts 从后台动态获取数据 (asp.net)
		
(一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...
 - JS动态获取数据
		
JS访问数据,有实时获取数据的时候,请加上时间戳 如:'&stampflag=' + Math.round(new Date().getTime() / 1000); 因为有的浏览器(如IE9 ...
 - ASP.NET中动态获取数据使用Highcharts图表控件【Copy By Internet】
		
具体实现的效果如图:
 - asp.net mvc Areas 母版页动态获取数据进行渲染
		
经常需要将一些通用的页面元素抽离出来制作成母版页,但是这里的元素一般都是些基本元素,即不需要 进行后台数据交换的基本数据,但是对于一些需要通过后台查询的数据,我们应该怎么传递给前台的母版页呢 这里描述 ...
 - react 动态获取数据
		
如果reander()里面的dom元素是动态获取的,就要将函数放到setSTATE()里面执行
 - echarts中跨域动态获取数据时,当某些对应的数据为空时,鼠标滑动到所在位置卡死
		
才疏学浅,万望指点. formatter: function (params) { var rel = params[0].name + "<br />"; rel + ...
 
随机推荐
- yii2:属性
			
yii2:属性 在 PHP 中,类的成员变量也被称为属性(properties). 以Foo.php类文件为例: 继承yii\base\Object类(基于类内的 getter 和 setter(读取 ...
 - WPF 通过 CommandParameter 传递当前窗体到 ViewModel
			
在应用 Command 模式中,需要在View上点击 一个按钮,需要将当前窗体作为参数传递为 command 两种方式传递当前窗体1.通过窗体名称(假设窗体名称为 ThisWindow) < ...
 - 【Java】final关键字
			
1.final数据 (1)基本类型 数值恒定不变 (2)对象引用 引用恒定不变,初始化的时候指向一个对象后,无法改变为另一个对象,但是对象本身可以修改 2.final方法 可以把方 ...
 - LeetCode OJ:Combination Sum II (组合之和 II)
			
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...
 - 条款22:将成员变量声明为private
			
protected成员变量的封装性并非高于public变量. 如果有个public的成员变量,一旦其需要改变,那么所有使用它的代码都需要改变. 如果有个protected的成员变量,一点其需要改变,那 ...
 - c#如何保存richtextbox的rtf格式
			
C# codethis.rtbText.Rtf = @"{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052" + @&qu ...
 - FlashDevelop安装配置
			
1.下载 FlashDevelop,flash sdk,flash sdk debug,.net framework,java sdk(32位,不管机器是多少位,否则不能单步调试的) 2. 安装Fl ...
 - 日常生活小技巧 --  惠普 Windows10 进入安全模式
			
今天手贱,是真的很贱.将用户模式从管理员组改为标准用户 方法是:WIN+R 打开 control userpasswords2 然后出现了用户账户控制,你要允许此应用对你的设备进行更改吗?最关键的是没 ...
 - RIPng 知识要点
			
RIPng --------------------------------------------------------- UDP:521 多播地址:FF02::9 -------------- ...
 - 在ubuntu16.04上安装php7 mysql5.7 nginx1.10并支持http2
			
安装nginx 首先更新软件包 并且安装nginx sudo apt-get update sudo apt-get install nginx 开放防火墙配置 sudo ufw allow 'Ngi ...