PHP-for循环初步实现日历表格思想
2018-02-04 11:44
260 查看
初步实现日历的打印:
初步先认为日历有31天,并且第一天从第一个格开始,最后奇数行用灰色填充。
刚开始是这么写的:
一个月有四周,每周是七天,也就是会有五行七列,现在是1行31列,这谁受得了?
这是把所有的信息全都写在了一个<tr></tr>里边,即一行,查看元素如图:
如果把<tr></tr>放到for循环里边,也就是会每一次循环输出一个<tr><td></td><tr>,貌似这样的话是每个数占一行,
修改代码如下:
审查元素如下:
查看结果如下:
我们想要的结果是什么?五行七列的,这又是什么鬼?
想一想,我们是不是再加个for循环来控制列呢?
修改如下:
查看结果和审查元素竟然是如下这个样子 !好纠结。
可以想一下,看for循环的话是有31行7列是不是?即每一列都是1-31的内容,也就是我们现在看到的结果,怎么改呢?我们把$i++不在那里放,放到别处试试,如下:
这回的结果如下:
看样子有点接近了是吧,不过好像还是不对啊,我们不是限制在31之内的吗?怎么会跑出35来了?
我们这样如何:加一个判断,如果$i>35我们就输出一个空格,否则就正常输出。
修改如下:
这回的结果如下:
好像是我们要的结果了,下边我们就是填充颜色了,这个简单多了。
我们给定一个$k=0,然后循环里边$k++,这样第一个循环就是第一行了,这时我们针对<td>进行颜色的填充,需要借助if...else判断。
相关代码如下:
最后附上完整代码:
注:仅是自己总结自己的想法而已。
初步先认为日历有31天,并且第一天从第一个格开始,最后奇数行用灰色填充。
刚开始是这么写的:
<?php header("content-type:text/html;charset=utf-8"); $days = 31; echo "<table width='700px' border='1px'>"; echo "<tr>"; for($i = 1; $i <= $days; $i++){ echo "<td>{$i}</td>"; } echo "</tr>"; echo "</table>"; ?>然而结果相差甚远:
一个月有四周,每周是七天,也就是会有五行七列,现在是1行31列,这谁受得了?
这是把所有的信息全都写在了一个<tr></tr>里边,即一行,查看元素如图:
如果把<tr></tr>放到for循环里边,也就是会每一次循环输出一个<tr><td></td><tr>,貌似这样的话是每个数占一行,
修改代码如下:
$days = 31; echo "<table width='700px' border='1px' cellspacing='0' cellpadding='1'>"; for($i = 1; $i <= $days; $i++){ echo "<tr>"; echo "<td>{$i}</td>"; echo "</tr>"; } echo "</table>";
审查元素如下:
查看结果如下:
我们想要的结果是什么?五行七列的,这又是什么鬼?
想一想,我们是不是再加个for循环来控制列呢?
修改如下:
for($i = 1; $i <= $days; $i++;){ echo "<tr>"; for($j = 0; $j < 7; $j++){ echo "<td>{$i}</td>"; } echo "</tr>"; }
查看结果和审查元素竟然是如下这个样子 !好纠结。
可以想一下,看for循环的话是有31行7列是不是?即每一列都是1-31的内容,也就是我们现在看到的结果,怎么改呢?我们把$i++不在那里放,放到别处试试,如下:
for($i = 1; $i <= $days; ){ echo "<tr>"; for($j = 0; $j < 7; $j++){ echo "<td>{$i}</td>"; $i++; } echo "</tr>"; }
这回的结果如下:
看样子有点接近了是吧,不过好像还是不对啊,我们不是限制在31之内的吗?怎么会跑出35来了?
我们这样如何:加一个判断,如果$i>35我们就输出一个空格,否则就正常输出。
修改如下:
for($i = 1; $i <= $days; ){ echo "<tr>"; for($j = 0; $j < 7; $j++){ if($i>31){ echo "<td> </td>"; }else{ echo "<td>{$i}</td>"; } $i++; } echo "</tr>"; }
这回的结果如下:
好像是我们要的结果了,下边我们就是填充颜色了,这个简单多了。
我们给定一个$k=0,然后循环里边$k++,这样第一个循环就是第一行了,这时我们针对<td>进行颜色的填充,需要借助if...else判断。
相关代码如下:
$k++; if($k%2==1){ echo "<tr bgcolor='#cccccc'>"; }else{ echo "<tr>"; }效果如下:
最后附上完整代码:
<?php header("content-type:text/html;charset=utf-8"); $days = 31; $k=0; echo "<table width='700px' border='1px' cellspacing='0' cellpadding='1'>"; for($i = 1; $i <= $days; ){ $k++; if($k%2==1){ echo "<tr bgcolor='#cccccc'>"; }else{ echo "<tr>"; } for($j = 0; $j < 7; $j++){ if($i>31){ echo "<td> </td>"; }else{ echo "<td>{$i}</td>"; } $i++; } echo "</tr>"; } echo "</table>"; ?>
注:仅是自己总结自己的想法而已。
相关文章推荐
- 用php的for循环实现金字塔
- php利用while单循环实现100行10列表格输出且每行颜色不一样
- 用两个for循环实现动态创建表格和实现乘法口诀表
- PHP for 循环如何实现实时输出
- php两个for循环实现无限级分类
- php语法之while多循环实现输出多个表格的代码
- php利用while单循环实现100行10列表格输出且每行颜色不一样
- PHP学习第一节----for循环的应用及对date函数的初步使用
- php输出表格的实现代码(修正版)
- MVC思想在PHP中的实现思路
- 【HDU5510 2015沈阳赛区B】【KMP or strstr for循环剪枝】Bazinga 循环处思维灵活转化 时间复杂度均摊思想
- 简述MVC思想 与PHP如何实现MVC
- 关于PHP中for循环语句的几种变型
- PHP+JavaScript+HTML实现注册界面表单及日历控件
- js+php简单实现下载页面中当前显示的表格内容
- PHP简单日历实现方法
- PHP简单实现循环链表功能示例
- php 做的日历实现基本功能
- linux下shell for 循环执行不等待php脚本返回
- AJAX框架 jMaki (三) – 用日历(Calendar)和表格(Table)实现的Blog首页