我有一段简单的代码可以让我在特定月份回显开始和结束日期,我要做的是创建一个注册系统。
我将表中的日期作为表标题,然后在第一列中我有成员名称。我想要实现的是每天的复选框或无线电元素,但我正在努力实现这一点我没有得到预期的结果而是我回来了:
2013-10-01 13:44:213Europe/Berlin 2013-10-01 13:44:213Europe/Berlin
由此:
<?php
$dt = "<td><input type='checkbox' name='student[davidsmith]' value='Y' checked /></td>";
foreach($startDate as $dt){
echo "$dt";
} ?>
我觉得我很可能忽略了这一点和方法。也许有一种更清洁,更简单的方法来实现我想要实现的目标。 (目前我没有数据库交互,我真的想让框架最初排序)。
如果有人能帮助我完成这项工作那就太棒了!
date.php
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Attendance Example</title>
</head>
<body>
<form action='this_page.php' method='post'>
<table>
<th>Member</th>
<?php
$startDate = new DateTime();
$endDate = new DateTime('2013-09-31');
for ($c = $startDate; $c <= $endDate; $c->modify('+1 day')) {
echo "<th>".$c->format('d')."</th>"; }
?>
<tr>
<td>Memeber One</td>
<td><input type='checkbox' name='student[davidsmith]' value='Y' /></td>
<?php
$dt = "<td><input type='checkbox' name='student[davidsmith]' value='Y' checked /></td>";
foreach($startDate as $dt){
echo "$dt";
} ?>
</tr>
<tr>
<td>Member Two</td>
<?php
$dt = "<td><input type='checkbox' name='student[davidsmith]' value='Y' checked /></td>";
foreach($c as $dt){
echo "$dt";
} ?> <td><input type='checkbox' name='student[davidsmith]' value='1' /></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:2)
对您的代码的评论:
您收到的结果是:
$startDate
中的foreach($startDate as $dt)
不是数组,因此没有循环$dt
时,你正在覆盖$ dt变量,$dt = "<td><input type='checkbox' name='student[davidsmith]' value='Y' checked /></td>";
就像从未存在过一样
我的解决方案:
现在,如果我理解正确的话,我相信这是你要找的代码
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Attendance Example</title>
</head>
<body>
<form action='this_page.php' method='post'>
<table>
<th>Member</th>
<?php
$startDate = new DateTime();
$endDate = new DateTime('2013-09-31');
$days = array();
for ($c = $startDate; $c <= $endDate; $c->modify('+1 day')) {
echo "<th>".$c->format('d')."</th>";array_push($days,$c); }
?>
<tr>
<td>Memeber One</td>
<?php
foreach($days as $dt){
echo '<td><input type="checkbox" name="student[davidsmith]" value="'.$dt->format('d') .'" /></td>';
} ?>
</tr>
<tr>
<td>Member Two</td>
<?php
foreach($days as $dt){
echo '<td><input type="checkbox" name="student[davidsmith]" value="'.$dt->format('d') .'" /></td>';
} ?>
</tr>
</table>
</form>
</body>
</html>
首先我们将日期放在一个数组中然后我们循环它们并为每一天创建复选框。每个复选框应具有与其代表的日期对应的值。希望这就是你要找的东西。