PHP复选框分配给变量

时间:2017-06-26 22:53:31

标签: php html checkbox joomla joomla3.0

这就是我在这里的意思。如果选中该复选框,则我想分配这些值

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

如果选中 NOT 复选框,那么我想强制用户从日期选择器中进行选择,如果任一日期为null,则抛出错误。我有这个语法,我遇到的问题是,如果选中复选框 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'];
    }
}

1 个答案:

答案 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;
}

注意:这不是最好的方法。我建议将开始/结束日期代码移动到复选框的其他语句