我已经在Stackoverflow上尝试了各种方法,但似乎都没有帮助。
我在我的fullcalendar上添加了hall_no,而hall_no有三个选项,
我想根据hall_no中的值更改(.fc-event)div的背景颜色。
$data_events = array();
foreach($events->result() as $r) {
$data_events[] = array(
"id" => $r->id,
"title" => $r->name . "\n" . "\n" . $r->hall_no,
"end" => $r->end,
"start" => $r->start
);
}
echo json_encode(array("events" => $data_events));
exit();
}
public function halla(){
if (isset($_GET['hall_no'])){
$query = $_GET['hall_no'];
}else{
$query = NULL;
}
}
public function hallb(){
if ($query == 'Hall A'){
"<style>
.fc-event{background-color:#00cc00;}
</style>"
}elseif ($query == 'Hall B'){
"<style>
.fc-event{background-color:#ff1a8c;}
</style>"
}else{
"<style>
.fc-event{background-color:#00ffff;}
</style>"
}
}
我也尝试了in_array()函数:
$data_events = array();
foreach($events->result() as $r) {
$data_events[] = array(
"id" => $r->id,
"title" => $r->name . "\n" . "\n" . $r->hall_no,
"end" => $r->end,
"start" => $r->start
);
}
echo json_encode(array("events" => $data_events));
exit();
}
if (in_array("Hall A", $data_events))
{
"style=.fc-event{background-color:#00cc00} ";
}
elseif (in_array("Hall B", $data_events))
{
"style=.fc-event{background-color:#ff1a8c} ";
}
else
{
"style=.fc-event{background-color:#00ffff} ";
}
答案 0 :(得分:1)
Fullcalendar实际上有一项功能可以通过在您的活动中设置属性来支持您这样做。然后,fullCalendar将自动处理生成的HTML元素的颜色。
请参阅https://fullcalendar.io/docs/event-object - 您可以选择:
“color”:设置事件的背景和边框颜色
或
“backgroundColor”:设置事件的背景颜色
所以你可以简单地做这样的事情:
foreach($events->result() as $r) {
$color = "";
switch ($r->hall_no) {
case "Hall A":
$color = "#00cc00";
break;
case "Hall B":
$color = "#ff1a8c";
break;
default:
$color = "#00ffff";
break;
}
$data_events[] = array(
"id" => $r->id,
"title" => $r->name . "\n" . "\n" . $r->hall_no,
"end" => $r->end,
"start" => $r->start,
"color" => $color
);
}
现在每个事件都将根据与之关联的“Hall_no”值进行着色。
P.S。基于编写<style>
元素的解决方案将无法工作,因为基于“fc-event”类的规则将影响所有事件元素,因为它们都包含该类,而不是只是具有特定数据值的那些。
答案 1 :(得分:-1)
你没有回应你通过php应用的风格。
echo "style=.fc-event{background-color:#00cc00} ";