PHP Checkbox - PHP Tutorial
Có thể bạn quan tâm
Summary: in this tutorial, you will learn how to use PHP to process a form with one or more checkboxes.
A quick introduction to the checkbox element
A checkbox allows you to select a single value for submission in a form. To create a checkbox, you use the input element with the type checkbox as follows:
<input type="checkbox" name="checkbox_name" value="checkox_value">Code language: HTML, XML (xml)A checkbox has two states: checked and unchecked.
If you check the checkbox and submit the form using the POST method, the $_POST associative array will contain an element whose key is checkbox_name and value is checkbox_value.
echo $_POST['checkbox_name']; // 'checkbox_value'Code language: PHP (php)However, if you uncheck the checkbox and submit the form, the $_POST won’t have any element with key checkbox_name. It means that the following expression returns false:
isset($_POST['checkbox_name'])Code language: PHP (php)To check if a checkbox is checked, you can also use the filter_has_var() function like this:
if(filter_has_var(INPUT_POST,'checkbox_name')) { // ... }Code language: JavaScript (javascript)The filter_has_var() function returns true if the checkbox_name exists in the INPUT_POST.
A checkbox has no label. Therefore, you should always use a checkbox with a <label> element like this:
<input type="checkbox" name="agree" id="agree"> <label for="agree">I agree</label>Code language: HTML, XML (xml)In this example, the value of the for attribute of the <label> element is the same as the value of the id attribute of the checkbox. When you associate a label with a checkbox, you can click the label to check or uncheck the checkbox.
Another way to associate a checkbox with a label is to place the checkbox inside the label like this:
<label> <input type="checkbox" name="agree"> I agree </label>Code language: HTML, XML (xml)In this case, you don’t need to specify the id for the checkbox and the for attribute for the label.
A simple PHP checkbox example
We’ll create a simple form with one checkbox and a submit button.
First, create the following directory and file structure:
. ├── css │ └── style.css ├── inc │ ├── .htaccess │ ├── get.php │ └── post.php └── index.phpCode language: plaintext (plaintext)File | Directory | Description |
---|---|---|
index.php | . | Contain the main logic that loads get.php or post.php depending on the HTTP request method |
header.php | inc | Contain the header code |
footer.php | inc | Contain the footer code |
get.php | inc | Contain the code for showing a form with a checkbox when the HTTP request is GET. |
post.php | inc | Contain the code for handling POST request |
.htaccess | inc | Prevent direct access to the files in the inc directory |
style.css | css | Contain the CSS code |
index.php
Second, add the following code to the index.php file:
<?php require __DIR__ . '/inc/header.php'; $errors = []; $request_method = $_SERVER['REQUEST_METHOD']; if ($request_method === 'GET') { require __DIR__ . '/inc/get.php'; } elseif ($request_method === 'POST') { require __DIR__ . '/inc/post.php'; } if ($errors) { require __DIR__ . '/inc/get.php'; } require __DIR__ . '/inc/footer.php';Code language: PHP (php)The index.php loads the form from the get.php file if the HTTP request method is GET. And it loads the post.php file if the form is submitted.
The $errors variable is used to store error messages.
header.php
Third, place the following code to the header.php file:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>PHP Checkbox</title> <link rel="stylesheet" href="css/style.css"> </head> <body class="center"> <main>Code language: HTML, XML (xml)footer.php
Fourth, the footer.php file contains the enclosing tags corresponding to the opening tags from the header.php file:
</main> </body> </html>Code language: HTML, XML (xml)get.php
Fifth, create a form in the get.php file:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post"> <div> <label for="agree"> <input type="checkbox" name="agree" value="yes" id="agree" /> I agree to the <a href="#" title="term of service"> Term of Service</a></label> <small class="error"><?php echo $errors['agree'] ?? '' ?> </small> </div> <div> <button type="submit">Join Us</button> </div> </form>Code language: PHP (php)post.php
Sixth, add the following code to the post.php file to sanitize and validate the form data:
<?php // sanitize the value $agree = filter_input(INPUT_POST, 'agree', FILTER_SANITIZE_STRING); // check against the valid value if ($agree) { echo 'Thank you for joining us!'; } else { $errors['agree'] = 'To join us, you need to agree to the TOS.'; } Code language: PHP (php)Summary
- Use the isset() or filter_has_var() to check if a checkbox is checked or not.
Từ khóa » Html Checkbox Php If Checked
-
How To Read If A Checkbox Is Checked In PHP? - Stack Overflow
-
Read If Checkbox Is Checked In PHP | Delft Stack
-
See If A Checkbox Is Checked In PHP | Beamtic
-
Get Checked Checkboxes Value With PHP - Makitweb
-
Handling Checkbox In A PHP Form Processor - HTML Form Guide
-
PHP: Get Values Of Multiple Checked Checkboxes - FormGet
-
How To Read If A Checkbox Is Checked In PHP? - GeeksforGeeks
-
How To Get Checkbox Value In Php If Checked? - Pakainfo
-
HTML Input Checked Attribute - W3Schools
-
If Checkbox Is Checked Do Something - PHP Tutorial [WordPress]
-
How To Display Text When A Checkbox Is Checked - W3Schools
-
Verifying Checkboxes Are Checked With PHP - WillMaster
-
How To Check If Checkbox Is Checked? - Laracasts
-
How To Get Checked Checkbox Value In Php? - Lotus