表内的动态colspan,里面循环

时间:2017-07-18 13:32:46

标签: php while-loop html-table

我使用多维表制作每周一次的PHP日历。 第一列应该是(只是说)医生的名字,在右边的一周细胞中,可能需要2,3或甚至5天的事件。颜色设置如下:

Green - 1day event
Red - 2day event
Blue - 3day event....etc

从突出显示的蓝色单元格中可以看出,我遇到了colspan的问题。因为它是动态创建的,所以我必须找出一种方法来根据前几天正确“推送”列(如果有1天或更多事件)。

enter image description here

在一个通过mysql / php的nuthel中,这就是我正在做的事情:

while ($doctors = mysqli_fetch_assoc($result)) {
    $output .="<tr>";
    $output .="<td rowspan=2>".$doctors["name"]."</a></td>";
    //A for loop to create the days on the top
    for ($n=0; $n<=6; $n++)
    {
        //doesnt matter how they are made
    }
    //an extra td for a button (dont care about this now)
    $output .="<td></td>";
    $output .="</tr><tr>";

    //now here are the events
    for ($n=0; $n<=6; $n++)
    {
        $searchday = $dayArray[$n]["year"]."-".$dayArray[$n]["month"]."-".$dayArray[$n]["day"];
        //here is the Query that brings the event for the $searchday, which is the day of the column cell
        //After i retrieve the results with a fetch_assoc, i assigned the value of day to $info_tab bellow.
        //Lets say it returns an array $info holding the event, and the type of event (how many days)
        $info_tab = $info["event_details"];
        $background_color = $info["event_days"];

        $ids = array(1,2,3,4,5); //The background color cases...1day event, 2day event, etc
        if(in_array($background_color, $ids)){
            switch ($background_color) {    
                case 1:           
                    $output .= '<td colspan="1" class="wk-cspan-1">'.$info_tab.'</td>';
                break; 
                case 2:           
                    $output .= '<td colspan="2" class="wk-cspan-2">'.$info_tab.'</td>';
                break; 
                case 3:
                    $output .= '<td colspan="3" class="wk-cspan-3">'.$info_tab.'</td>';
                break;  
                case 4:
                    $output .= '<td colspan="4" class="wk-cspan-4">'.$info_tab.'</td>';
                break; 
                case 5:
                    $output .= '<td colspan="5" class="wk-cspan-5">'.$info_tab.'</td>';
                break; 
                default:
                    $output .= '<td colspan="1" class="wk-cspan-0">'.$searchday.'</td>';
                break; 
            }
        }else{
            $output .= '<td colspan="1" class="wk-cspan-0">'.$searchday.'</td>';
        }

    }
    $output .="</tr>";
}

我需要以某种方式'跳过'我用蓝色标记的14.03.2017并填写15.03。所以基本上下一个细胞需要知道它之前是否有任何colspan。

我有什么想法可以做到这一点? 也许我需要重写整个循环,我不知道..虽然不能想到更简单的方法。 你不必给我一个完整的代码。一个想法或一个简单的算法表示会...我只需要开始我的大脑。

由于

0 个答案:

没有答案