Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据数组中的值更改div的css样式_Php_Css_Fullcalendar - Fatal编程技术网

Php 根据数组中的值更改div的css样式

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,

我在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,
             "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
        );
    }