(见截图:)我想制作一张桌子,人们可以选择,在这个月的哪些日子里他们可以工作。他们每天可以选择3班(每天也可以选择不止一班)。
答案 0 :(得分:1)
在做任何php工作之前,你需要首先创建html表单,然后它将清楚需要由php生成什么,什么不是。这是我提出的HTML
<table border="1" width="100%">
<tr>
<td>Current month name</td>
<td>Schicht 1</td>
<td>Schicht 2</td>
<td>Schicht 3</td>
</tr>
<tr>
<input type="check">
<td>Sun. 1</td>
<td><input type="checkbox" name="131201Schicht1" value=""></td>
<td><input type="checkbox" name="131201Schicht2" value=""></td>
<td><input type="checkbox" name="131201Schicht3" value=""></td>
</tr>
</table>
然后使用以下PHP代码,我们获得填充表格所需的主要信息:
<?php
//I added this to make it easy to add more shifts
$number_of_shifts = 3;
$now = time();
$day = 1; //Just a day counter
$month = date('m', $now);
$year = date('Y', $now);
// number of days in this current month
$days_in_month = cal_days_in_month(0, $month, $year);
?>
然后我们只需要运行以下代码来生成我们自己的表,其中包含遗漏特定日期等规则。
<?php
$number_of_shifts = 3;
$now = time();
$day = 1;
$month = date('m', $now);
$year = date('Y', $now);
$days_in_month = cal_days_in_month(0, $month, $year);
?>
<html>
<body>
<table border="1" width="100%">
<tr>
<td><? echo date('F', $now).' '.$year; ?></td>
<? for ($i=1; $i < $number_of_shifts+1; $i++)
{
echo "<td>Schicht $i</td>";
}
?>
</tr>
<?php while ($day <= $days_in_month)
{
$timeForDay = mktime(0,0,0,$month, $day, $year);
$dayName = date('D', $timeForDay);
if($dayName != 'Mon' && $dayName != 'Tue')
{
?>
<tr>
<?php
echo '<td> '.$dayName.' '.$day.' </td>';
$shiftId = date('ydm', $timeForDay);
for ($i=1; $i < $number_of_shifts+1; $i++)
{
echo '<td><input type="checkbox" name="'.$shiftId.'Schicht'.$i.'" value=""></td>';
}
?>
</tr>
<?
}
$day++;
}
?>
</table>
</body>
</html>
这只是一段快速混乱的代码,您不应该在生产中使用它,我只是向您展示如何完成它并且未经过测试的技术!