在 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