我正在尝试插入jQuery
完整日历事件数据,在这种情况下,数据代表用户的生日。我正在从MySQL
数据库中检索生日。我们来看看脚本
php
:
if ($birthday_r = $connection->query("SELECT CONCAT(name,' ',surname),MONTH(birthday),DAY(birthday) FROM users")){
while ($birthday_row = $birthday_r->fetch_row()){
$birthday_array[] = array(
'title' => $birthday_row[0],
'start' => Date("Y") . "-" . $birthday_row[1] . "-" . $birthday_row[2]
);
}
$json = json_encode($birthday_array);
birthday_r->free();
}
然后,您如何看待将此json编码信息存储到$json
变量
javascript
:
jQuery("#calendar").fullCalendar({ // initialize full calendar
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
<?php if (isset($json_encode)){echo "events: " . $json . ",";} ?>
viewDisplay: function(view){
var i = view.title.slice(-4);
},
renderEvent: function(event){
}
});
这在页面加载时效果很好,但我想在更改议程后(我的意思是例如按next或prev按钮),每年的生日都会在日历中显示。为此我建议使用viewDisplay
和renderEvent
函数,但是我不能在php中修改year变量的方式以及javascript。在viewDisplay
函数变量i
中是年份的数值(如2012)。我的问题是以某种方式将Date("Y")
i
变量更新为renderEvent
函数。此外,我试图将检索到的信息存储到javascript变量中,如so =&gt;
在这个例子中认为在php中给出了
'start' => $birthday_row[1] . "-" . $birthday_row[2] // php
// below JavaScript code
var json_obj = <?php if (isset($birthday_array)){echo $birthday_array;} ?>
var d = new Date();
for (var i=0;i<json_obj.length;i++){
json_obj[i] = d.getFullYear() + "-" + json_obj[i];
} // this scripts works as well but I can not manipulate after prev or next buttons are pressed on calendar
PS。我想伙计们,明白我要做什么,请帮我怎么做。非常感谢事先:)
答案 0 :(得分:3)
最简单的解决方案可能是改变您的PHP循环并为您的活动添加“多年”。
while ($birthday_row = $birthday_r->fetch_row()){
$yearBegin = date("Y");
$yearEnd = $yearBegin + 10; // edit for your needs
$years = range($yearBegin, $yearEnd, 1);
foreach($years as $year){
$birthday_array[] = array(
'title' => $birthday_row[0],
'start' => $year . "-" . $birthday_row[1] . "-" . $birthday_row[2]
);
}
}
两个缺点:
您还可以查看demo重复事件以构建前端解决方案。