这就是我在这里的意思。如果选中该复选框,则我想分配这些值
$begindate = '20160101';
$enddate = '20161231'
如果选中 NOT 复选框,那么我想强制用户从日期选择器中进行选择,如果任一日期为null,则抛出错误。我有这个语法,我遇到的问题是,如果选中复选框 AND ,则用户输入日期,然后输入日期会覆盖复选框日期。不是我想要发生的事。这里可能还有其他语法缺陷,我的新自己尚未意识到,但是为了使其正确流动并按照我上面的描述执行,需要在此语法中进行哪些更改?
<body>
<form>
Display 2016 Data?   <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'];
}
}
答案 0 :(得分:1)
将复选框的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;
}
注意:这不是最好的方法。我建议将开始/结束日期代码移动到复选框的其他语句