我使用多维表制作每周一次的PHP日历。 第一列应该是(只是说)医生的名字,在右边的一周细胞中,可能需要2,3或甚至5天的事件。颜色设置如下:
Green - 1day event
Red - 2day event
Blue - 3day event....etc
从突出显示的蓝色单元格中可以看出,我遇到了colspan的问题。因为它是动态创建的,所以我必须找出一种方法来根据前几天正确“推送”列(如果有1天或更多事件)。
在一个通过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。
我有什么想法可以做到这一点? 也许我需要重写整个循环,我不知道..虽然不能想到更简单的方法。 你不必给我一个完整的代码。一个想法或一个简单的算法表示会...我只需要开始我的大脑。
由于