php - 如何在php中对复选框进行验证

标签 php

如何在服务器端 php.ini 上对复选框进行验证我编写了一个输入标签,其中包含 html 中非常常见的名称类型和值标签。 我在google后用php写了一些代码,但没有工作。任何帮助表示赞赏。 html代码

....
<input tags of name>
<input tags of category with select and options tag>
<div class="row">
            <div class="form-check pl-3 pt-1">
                <label class="form-check-label">
                    <input name="checkbox" class="form-check-input" id="checkbox" type="checkbox" value="Check Box">
                <a href="#">Option 1</a>
                </label>
            </div>

php 代码如下:

$name = $_POST['name'];
    $checkbox = $_POST['checkbox'];


    $name_error = "";
    $checkbox_error = "";

    if (!isset($checkbox)){
        $checkbox_error = true;
        echo "<span class='alert alert-danger' role='alert'>Please select checkbox</span>";
    } if { 
$name error define here...
} else {

最佳答案

您可以使用isset,未选中的复选框不会提交到服务器

if(!isset($_POST['checkbox'])){
    //do something when not set

}

您现在所拥有的将会给您一个 undefined offset 警告/错误,因为您可能会从 $_POST 数组中不存在的索引分配一个值。所以你必须在分配之前检查它。

$checkbox = $_POST['checkbox']; //throws warning.

if(isset($checkbox)){

}

如果您只是想为其设置一个值,您可以使用三元运算符

$checkbox = isset($_POST['checkbox']) ? $_POST['checkbox'] : false;

这相当于这样做

if(isset($_POST['checkbox'])){
    $checkbox = $_POST['checkbox']);
}else{
    $checkbox = false;
}

现在,如果已设置,复选框将等于 $_POST['checkbox'],如果未设置,则等于 false。然后您可以通过简单的 bool 比较来检查它。

if( $checkbox ){ ... }

PHP7 中的新功能是 NULL合并 运算符,因此使用 PHP7 你可以做到这一点

$checkbox = $_POST['checkbox'] ?? false;

虽然我还没有尝试过,但仍在等待 CSO 将我们的服务器从 PHP 5.6 升级

关于php - 如何在php中对复选框进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47005570/

相关文章:

php - 通过http上传word文档

php - 动态html字段表单的mysql设计

php - PDO:显示表键无法正确绑定(bind)参数

php - 如何区分 domText 和 domElement 对象?

PHP xpath - 查找具有值的元素并获取元素前后的元素

php - 使用 .htaccess 根据文件路径的一部分重定向到新域?

php - 代码 Iginiter 错误 'The address wasn' 无法理解'

php - 执行连接 UPDATE 查询时 mysql_query 返回 true

php - PHP数组在C层面是如何实现的?

php - Websocket - 客户端不接收数据