Php 根据数组中的值更改div的css样式
我在Stackoverflow的回答中尝试了各种方法,但似乎都没有帮助 我在我的完整日历上添加了hall_no,hall_no有三个选项Php 根据数组中的值更改div的css样式,php,css,fullcalendar,Php,Css,Fullcalendar,我在Stackoverflow的回答中尝试了各种方法,但似乎都没有帮助 我在我的完整日历上添加了hall_no,hall_no有三个选项 A厅 B厅 A+B大厅 我想根据hall_no中的值更改(.fc event)div的背景色 $data_events = array(); foreach($events->result() as $r) { $data_events[] = array( "id" => $r->id,
$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>"
}
}
您没有响应通过php应用的样式
echo "style=.fc-event{background-color:#00cc00} ";
Fullcalendar实际上有一个功能,通过设置事件的属性来支持您这样做。然后fullCalendar将自动处理结果HTML元素的颜色设置 请参阅-您可以从以下选项中进行选择: “颜色”:设置事件的背景和边框颜色 或 “背景颜色”:设置事件的背景颜色 因此,您可以简单地执行以下操作:
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”值着色
另外,基于编写
元素的解决方案永远不会起作用,因为基于“fc event”类的规则将影响所有事件元素,因为它们都携带该类,而不仅仅是那些具有特定数据值的元素。请看一看strcmp
和echo
函数,etcEcho在@Temani非常有用,特别是如果您想输出一些东西的话。:-)OP您是否已关闭错误?这段代码在PHP中运行时不能没有错误;在if()之前,您是否应该删除它?还有一个}
太多了code@Andreas如果你想输出一些东西
-->在这种情况下,他至少需要将这些样式打印到他的页面上,所以我们应该在某个地方有一个回音或返回;)我只是将if()放在exit()之前,但颜色仍然不会改变。控制台中没有任何错误。添加了echo。控制台中没有错误,我的事件也只是从日历中消失。这只是在上下文之外直接回显此输出,作为JSON响应的一部分,从而导致JSON无效。我认为你没有考虑清楚这个答案。如果代码生成HTML元素,如果注入到标记的正确位置,它可能会实现一些功能,但是a)代码生成的是JSON而不是HTML,b)它甚至不是有效的样式属性。非常感谢。这正是我想要的。我尝试了各种各样的造型方法,但没有一种像你说的那样有效。干杯,没问题。当面对这样的事情时,总是值得详细研究fullCalendar文档,它确实有很多特性。我会记着看这些文件的。上帝保佑。
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
);
}