PHP 复选框分配给变量

PHP Checkbox Assign To Variable

这就是我想要的。如果复选框被选中,那么我想分配这些值

$begindate = '20160101';
$enddate = '20161231'

如果复选框 未选中 那么我想强制用户从日期 select 或者 select 开始,并且如果任一日期为空然后抛出一个错误。我有这个语法,我遇到的问题是,如果复选框被选中 AND 用户输入日期然后输入日期覆盖复选框日期。不是我想要发生的事情。这里可能还有其他语法缺陷,我的新自我还没有意识到,但是这个语法需要改变什么才能让它像我上面描述的那样正确流动和执行?

    <body>
<form>
Display 2016 Data? &emsp; <input type = 'Checkbox' Name='twentysix' value="twentysix"><br>
<input type="submit" name="submit" value="Gather">
</form>
</body>
<?php
if (isset($_POST['submit'])) 
{
    if ( isset($_POST['twentysix']) ) {
        $begindate = '20160101';
        $enddate = '20161231'
    } else {
        $begindate = $begindate;
        $enddate = enddate;
    }
    $begindateerror = false;
    $enddateerror = false;
    if (empty($_POST['begindate'])) {
        $begindateerror = true;
    }
    if (empty($_POST['enddate'])) {
        $enddateerror = true;
    }
    if ($begindateerror) {
    echo "<strong>Please select a start date.</strong><br>";
    } else if ($enddateerror) {
        echo "<strong>Please select a end date.</strong><br>";
    } else {
        $begindate = $_POST['begindate'];
        $enddate = $_POST['enddate'];
    }
}

将复选框的 if 语句移到末尾

$begindateerror = false;
$enddateerror = false;
if (empty($_POST['begindate'])) {
    $begindateerror = true;
}
if (empty($_POST['enddate'])) {
    $enddateerror = true;
}
if ($begindateerror) {
echo "<strong>Please select a start date.</strong><br>";
} else if ($enddateerror) {
    echo "<strong>Please select a end date.</strong><br>";
} else {
    $begindate = $_POST['begindate'];
    $enddate = $_POST['enddate'];
}  
if ( isset($_POST['twentysix']) ) {
    $begindate = '20160101';
    $enddate = '20161231'
} else {
    $begindate = $begindate;
    $enddate = enddate;
}

注意:这不是最好的方法。我建议将 begin/end 日期代码移动到复选框的 else 语句中