You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP生成考勤表日期表头及表格渲染相关问题咨询

问题1:表头没有填充对应日期的原因

  • 数组键名未加引号:$_POST[startdate] 语法错误,正确写法为$_POST['startdate']
  • 变量引用错误:计算日期时直接写startdate,既没有从POST请求中获取提交的值,也没有加$符号识别为PHP变量
  • 变量作用域问题:表格代码写在if判断外,未提交表单时$day1~$day4变量未定义,输出为空

问题2:将HTML表格插入if判断语句的方法

PHP支持代码和HTML混写,直接把表格结构放在if条件成立的代码块内即可,确保只有提交了有效起始日期才会渲染考勤表,避免未定义变量报错。

问题3:将日期列宽度设置为1个字符宽度的方法

使用CSS的ch单位(1ch等于数字0的宽度,刚好对应1个字符宽度),给日期列对应的th/td元素添加样式width: 1ch即可,可配合溢出隐藏规则避免内容撑开列宽。


修正后的输入表单 forum.php 代码

<!DOCTYPE html>
<html>
<head>
<style>
td, th {
  border: 4px solid lightblue;
  text-align: left;
  padding: 8px;
}
</style>
<title>考勤表生成</title>
</head>
<body>
<h2> ATTENDANCE LIST </h2>
<form action="gen-table.php" method="post">
<p>
    <label for="startdate">起始日期:</label>
    <input type="date" name="startdate" id="startdate" required />
    <input type="submit" value="选择并生成" />
</p>
</form>
</body>
</html>

修正后的处理脚本 gen-table.php 代码

<!DOCTYPE html>
<html>
<head>
<style>
td, th {
  border: 4px solid lightblue;
  text-align: left;
  padding: 8px;
  box-sizing: border-box;
}
/* 日期列设置为1字符宽度 */
.date-col {
  width: 1ch;
  overflow: hidden;
  white-space: nowrap;
}
</style>
<title>考勤表结果</title>
</head>
<body>
<h2> ATTENDANCE LIST </h2>
<?php
if (isset($_POST['startdate'])) {
    $start_date = $_POST['startdate'];
    // 右数第三列为起始日期,后续依次加7天
    $day_right3 = date('d-m-Y', strtotime($start_date . "+0 days"));
    $day_right2 = date('d-m-Y', strtotime($start_date . "+7 days"));
    $day_right1 = date('d-m-Y', strtotime($start_date . "+14 days"));
?>
<!-- 表格嵌入if判断内部 -->
<table>
  <tr>
    <th>Lastname</th>
    <th>Firstname</th>
    <!-- 右数第三、二、一列依次为起始日期、+7天、+14天 -->
    <th class="date-col"><?php echo $day_right3; ?></th>
    <th class="date-col"><?php echo $day_right2; ?></th>
    <th class="date-col"><?php echo $day_right1; ?></th>
  </tr>
  <!-- 后续可自行补充员工考勤行 -->
</table>
<?php
} else {
    echo "<p>请先选择起始日期</p>";
}
?>
</body>
</html>

内容的提问来源于stack exchange,提问作者AadS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 03:12:02