实现基本的HTML复选框
在HTML中创建复选框使用<input type="checkbox">标签。PHP可以通过动态生成HTML来处理复选框:
<form method="post" action="process.php">
<input type="checkbox" name="options[]" value="option1"> Option 1
<input type="checkbox" name="options[]" value="option2"> Option 2
<input type="checkbox" name="options[]" value="option3"> Option 3
<input type="submit" value="Submit">
</form>
处理表单提交的复选框数据
在PHP中接收复选框数据时,使用数组形式的name属性(如options[])可以方便地获取多个选中值:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$selectedOptions = $_POST['options'] ?? [];
foreach ($selectedOptions as $option) {
echo "Selected: " . htmlspecialchars($option) . "<br>";
}
}
动态生成复选框列表
从数据库或数组中动态生成复选框:

$options = [
'apple' => 'Apple',
'banana' => 'Banana',
'orange' => 'Orange'
];
foreach ($options as $value => $label) {
echo '<input type="checkbox" name="fruits[]" value="' . htmlspecialchars($value) . '"> '
. htmlspecialchars($label) . '<br>';
}
保持复选框选中状态
表单提交后保持复选框的选中状态:
$selectedFruits = $_POST['fruits'] ?? [];
foreach ($options as $value => $label) {
$checked = in_array($value, $selectedFruits) ? 'checked' : '';
echo '<input type="checkbox" name="fruits[]" value="' . htmlspecialchars($value) . '" '
. $checked . '> ' . htmlspecialchars($label) . '<br>';
}
使用PHP生成复选框数组
对于需要处理多个项目的表单,可以使用PHP循环生成复选框:

$products = [
['id' => 1, 'name' => 'Laptop'],
['id' => 2, 'name' => 'Phone'],
['id' => 3, 'name' => 'Tablet']
];
foreach ($products as $product) {
echo '<input type="checkbox" name="products[]" value="' . $product['id'] . '"> '
. htmlspecialchars($product['name']) . '<br>';
}
验证复选框输入
对提交的复选框数据进行验证:
$validOptions = ['option1', 'option2', 'option3'];
$selectedOptions = $_POST['options'] ?? [];
foreach ($selectedOptions as $option) {
if (!in_array($option, $validOptions)) {
die("Invalid option selected");
}
}
数据库集成示例
从数据库查询数据并生成复选框:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query("SELECT id, name FROM products");
while ($row = $stmt->fetch()) {
echo '<input type="checkbox" name="products[]" value="' . $row['id'] . '"> '
. htmlspecialchars($row['name']) . '<br>';
}