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

PHP表单提交无法同时获取多组from/to时间,仅能获取其一

解决PHP表单中星期与对应时间的匹配问题

问题根源

当前表单元素采用day[]、from[]、to[]的自动递增索引命名方式,当仅勾选部分星期时,提交的day数组索引会和from/to数组索引错位。比如只勾选周二,day数组的索引为0,但from数组会包含周一(空值)和周二的时间,导致遍历day时拿到的from[$i]并非对应星期的时间。

解决方案

给每组星期、开始时间、结束时间指定统一的固定索引,让同一组的三个元素共享同一个索引,实现精准关联。

修改后的完整代码

<?php
if ($_POST) {
    // 遍历选中星期的索引,关联对应组的时间
    foreach ($_POST['day'] as $index => $day) {
        $from = $_POST['from'][$index] ?? '';
        $to = $_POST['to'][$index] ?? '';
        echo "星期:{$day}<br>";
        echo "开始时间:{$from}<br>";
        echo "结束时间:{$to}<br><hr>";
    }
}
?>
<form action="" method="POST">
    <input type="checkbox" name="day[0]" value="Monday"> Monday | 
    From <input type="time" name="from[0]"> 
    To <input type="time" name="to[0]"><br>
    
    <input type="checkbox" name="day[1]" value="Tuesday"> Tuesday | 
    From <input type="time" name="from[1]"> 
    To <input type="time" name="to[1]"><br>
    
    <input type="checkbox" name="day[2]" value="Wednesday"> Wednesday | 
    From <input type="time" name="from[2]"> 
    To <input type="time" name="to[2]"><br>
    
    <input type="submit" name="submit" id="submit" value="submit">
</form>

关键修改说明

  • 表单部分:将每组元素的name改为带固定索引的格式(如day[0]、from[0]),确保同一组的星期和时间元素共享同一索引
  • PHP处理部分:通过foreach遍历$_POST['day']的索引,直接获取对应组的from和to值;用?? ''处理未填写时间的情况,避免报错
  • 移除原表单中无效的to="from[]"属性(time输入框无此属性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:15:46