【发布时间】:2011-08-12 08:46:27
【问题描述】:
仍在处理我的计划器/日历应用程序。我快完成了,我完成了一些更难的部分,但我被困在一个更困难的部分。我想根据开始时间在网格中显示我的事件。
这张图片中没有显示,但假设 25 日左侧有一列显示小时(上午 8 点至晚上 11 点左右)。如果一个事件开始于.. 说,下午 1 点,我希望它显示在页面中间的某个地方。如果一个事件在上午 8:30 开始,它应该在上午 8 点到 9 点之间显示。
我想我可以用表格做到这一点,但我想知道是否还有其他方法。这对于普通的 html/css 是否可行,也许是一些 Javascript?关于实现这一目标的最佳方法的任何建议?如果我使用桌子,我仍然不确定什么是最好的方法。每三十分钟一个牢房?从我的角度来看,我可以访问每个事件的开始和结束时间。一个事件数组(在本例中为 25 号)如下所示:
Array
[1] => Array
(
[title] => Ethiek
[description] => Ethiek: Opdracht 1
[time_start] => 11:30:00
[time_end] => 12:00:00
)
[2] => Array
(
[title] => Project Management
[description] => Test: Project Management
[time_start] => 15:00:00
[time_end] => 16:00:00
)
[event_count] => 2
感谢您给我的任何建议。非常感谢!
编辑:开始对此进行赏金,因为我仍然被困住,我希望能得到一些反馈。
更新:
我一直在为此烦恼,老实说,我想不出最好的方法来做到这一点。首先,我认为我被卡住的原因是我从 db/array 中读出我的事件的方式。这是我必须显示在屏幕截图中看到的事件的代码,不要介意我的复杂数组:
foreach($details[0] as $key => $detail)
{
echo "<div class='grid'>";
$header = "<p class='detail_header'>";
$header .= ucfirst($dates[0][$key]['name']) . ", " . $key . " " . $init['curr_month_name'];
$header .= "<img src='" . base_url() . "assets/images/create_event.png' alt='Plan iets'></p>";
echo $header;
for($i = 1; $i <= $details[0][$key]['event_count']; $i++)
{
echo "<div class='event " . $details[0][$key][$i]['type'] . "'>";
echo "<p class='event_title'>" . $details[0][$key][$i]['title'] . "</p>";
echo $details[0][$key][$i]['description'];
echo "</div>";
}
echo "</div>";
}
有点乱,更何况我还有一次用同样的代码来修复一些异常。但更重要的是.. 我觉得那些循环不允许我对其进行大量修改。我尝试为 AM 和 PM 添加两个 div,这样我就可以在中午之前和下午的块中拆分事件,然后只显示事件的时间(以避免不得不处理一千个 15 分钟的块)。但是,是的.. 这没有成功,因为如果下午有多个活动,它会放置几个“PM”div。
我很想暂时保留它,只在事件 div 中显示开始/结束时间。直到我找到更好的方法从数组中读取它们并显示它们。
任何帮助/建议表示赞赏。谢谢。
【问题讨论】:
-
我不明白人们对 Tables 的厌恶。表格旨在显示数据,而这正是您正在做的事情。
-
桌子和绝对定位解决方案都很好。第二个更通用、更精确,但可能需要更多工作才能正确设置并对浏览器缩放或其他事件做出反应。
标签: php jquery html css calendar