【问题标题】:Validating multiple check boxes in PHP. Must check at least one but not more than three checkboxes验证 PHP 中的多个复选框。必须选中至少一个但不超过三个复选框
【发布时间】:2014-02-23 09:23:18
【问题描述】:

我正在使用 PHP 创建一个投票系统,并且我有一个要插入 MySQL 数据库的表单。我将使用 JavaScript 来确保用户选择至少一个候选人但不超过三个,但我也想在服务器端进行验证。这是该页面的网络表单:

<form method="post" action="post.php">
<input type="checkbox" name="vote[FR01]" value="ON"> Freshman Candidate 1 <br />
<input type="checkbox" name="vote[FR02]" value="ON"> Freshman Candidate 2 <br />
<input type="checkbox" name="vote[FR03]" value="ON"> Freshman Candidate 3 <br />
<input type="checkbox" name="vote[FR04]" value="ON"> Freshman Candidate 4 <br />
<input type="checkbox" name="vote[FR05]" value="ON"> Freshman Candidate 5 <br />
<input type="checkbox" name="vote[FR06]" value="ON"> Freshman Candidate 6 <br />
<input type="submit" name="submit" value="submit">
</form>

我知道我需要使用 for 循环,但是谁能解释我如何使用作为数据库中列名的数组键索引?

【问题讨论】:

    标签: php arrays validation checkbox


    【解决方案1】:

    这个怎么样?

    if (isset($_POST['submit'])) {
        $checkedCandidates = 0;
        $values = $_POST['vote'];
        $checkedCandidates = count($values);
    
        if ($checkedCandidates < 1) {
            echo 'You need to check at least one candidate.';
        } elseif ($checkedCandidates >= 4) {
            echo 'You can only check up to three candidates.';
        } else {
            echo 'Checked candidates: ' . var_dump($values);
        }
    }
    

    【讨论】:

    • 为什么不$values = $_POST['vote']; $checkedCandidates = count($values);?我认为这里不需要循环。
    • 谢谢,没想到。现在看起来更干净了。已编辑:)
    • 没问题,顺便说一句,你是用什么制作 .gif 的?如果它相当快速和简单,我很感兴趣。作为一名 Google Apps 管理员,我宁愿将其发送给具有 1 分钟记录的用户,然后尝试在 10 分钟内编写一个万无一失的描述,但他们仍然会出错;)
    • LICEcap。我在 20 秒内制作了该 gif,然后将其上传到 Stackoverflow。完美运行。
    • 啊,该死的:"(适用于 Windows 和现在的 OSX)",这不包括我 :(。无论如何,谢谢,我会看看是否有类似的 *nix 包: )
    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2015-11-06
    • 2011-07-01
    • 1970-01-01
    • 2020-06-24
    相关资源
    最近更新 更多