在 PHP 中读取复选框是否被选中

Subodh Poudel 2023年1月30日 2021年4月29日
PHP
  1. $_POST 数组上使用 isset() 函数来读取复选框是否被选中
  2. 使用 in_array() 函数来读取复选框是否被选中
  3. 使用 isset() 函数与三元函数来读取复选框是否被选中
在 PHP 中读取复选框是否被选中

我们将演示如何使用 $_POST 数组上的 isset() 函数检查 PHP 中的复选框是否已选中。我们提供 HTML 的 input 标签的 name 属性的值作为 $_POST 数组中的数组元素。

我们将介绍另一种方法,在 PHP 中使用 in_array() 函数读取复选框是否被选中。在此方法中,我们使用复选框作为数组。这意味着 HTML input 标签中的所有 name 字段必须包含相同的数组。

我们将介绍一种简化方法,以检查是否已使用三元运算符选中了该复选框。该方法更加直接和简短,并且使用 isset() 函数。

$_POST 数组上使用 isset() 函数来读取复选框是否被选中

我们可以使用 isset() 函数来检查 PHP 中是否已选中该复选框。isset() 函数将 $_POST 数组作为参数。$_POST 数组包含 HTML 形式的 name 属性的特定值。

例如,使用 POST 方法在 HTML 中创建一个表单,然后将操作指定为 index.php。创建两个分别名为 test1test2 的复选框。用 .php 扩展名保存文件。创建一个名为 index.php 的 PHP 文件。以 $_POST 数组为参数,对 isset() 函数应用两个 if 条件。将 test1test2 分别用作 $_POST 数组中的数组元素。打印指定相应值的消息。

下面的示例使用 POST 方法以表格形式发送数据。通过表单发送敏感信息时,它是安全的。单击此处以了解有关 POST 方法的更多信息。用户选中表单中的两个复选框。因此,脚本输出的方式如下所示。如果用户仅检查了 Option 1,则脚本将输出为 checked value1。它也类似于 Option 2

示例代码:

# html 5
<form action="index.php" method="post" >
<input type="checkbox" name="test1" value="value1"> Option 1
<input type="checkbox" name="test2" value="value2"> Option 2
<input type="submit" value="Submit"> 
</form>
#php 7.x
<?php
if(isset($_POST['test1'])){
    echo "checked value1"."<br>";
}
if(isset($_POST['test2'])){
    echo "checked value2";
}
?>

输出:

checked value1
checked value2

使用 in_array() 函数来读取复选框是否被选中

我们可以使用 in_array() 函数来检查元素是否位于 PHP 的数组中。in_array() 函数将要检查的值作为第一个参数。该函数的第二个参数是要在其中检查值的数组。查看 PHP 手册以了解有关 in_array 函数的更多信息。为了使此方法起作用,HTML 形式的所有 name 属性值都必须是一个数组。

例如,使用 test[] 数组以 HTML 形式分配 name 属性的值。请注意,它适用于所有复选框类型。首先,在 PHP 文件中,按照第一种方法检查是否已使用 isset() 函数提交了数据。但是,在检查发布的数据时,请勿在测试之后使用 [] 括号。然后,使用 in_array() 函数检查 value1 是否在 $_POST['test'] 数组中。显示消息。

首先,下面的示例检查数据是否以表格形式提交。如果条件为真,则使用 in_array() 函数检查 value1 是否位于 $_POST['test'] 数组中。用户选中表单中的第一个复选框。

示例代码:

#html 5
<form action="index.php" method="post" >
<input type="checkbox" name="test[]" value="value1"> Option 1
<input type="checkbox" name="test[]" value="value2"> Option 2
<input type="submit" value="Submit"> 
#php 7.x
<?php
if(isset($_POST['test'])){
    if(in_array('value1', $_POST['test'])){
        echo "Option1 was checked!";
    }
}
?>

输出:

Option1 was checked!

使用 isset() 函数与三元函数来读取复选框是否被选中

我们可以在在 PHP 中使用一种简便方法来检查该复选框是否已选中。此方法使用三元运算符以及 isset() 函数。请查看 MSDN Web 文档以了解有关三元运算符。

例如,设置变量 $check 来存储三元运算的值。使用 isset() 函数检查复选框中是否已选中 test1。打印 $check 变量以显示结果。在下面的示例中,如果条件为 true,则显示 checked;如果条件为 false,则显示 unchecked。用户选中表单中的第二个复选框。因此,条件失败。

示例代码:

#html 5
<form action="index.php" method="post" >
<input type="checkbox" name="test1" value="value1"> Option 1
<input type="checkbox" name="test2" value="value2"> Option 2
<input type="submit" value="Submit"> 
</form>
#php 7.x
<?php
$check = isset($_POST['test1']) ? "checked" : "unchecked";
echo $check;
?>

输出:

unchecked
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn