如何阅读,如果一个复选框被选中在PHP?


当前回答

<form>
<input type="check" id=chk1 value="1">
<input type="check" id=chk2 value="1">
<input type="check" id=chk3 value="1">
</form>

当你检查chk2时,你可以看到如下值:

<?php
foreach($_POST as $key=>$value)
{
    if(isset($key))
        $$key=strip_tags($value);
}
insert into table (chk1,chk2,chk3) values ('','1','');
?>

其他回答

filter_input(INPUT_POST, 'checkbox_name', FILTER_DEFAULT, FILTER_FORCE_ARRAY)

Zend框架在复选框上使用了一个不错的hack,你也可以自己做:

生成的每个复选框都与一个同名的隐藏字段相关联,位于复选框之前,值为“0”。然后,如果您的复选框为值“1”,则在结果get或POST中始终获得“0”或“1”值

<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1"> 

你可以用简短的if来表达:

$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;

或者使用新的PHP7空合并运算符

$check_value = $_POST['my_checkbox_name'] ?? 0;

我已经把它固定成一个带有复选框的PHP表单

$categories = get_terms(['taxonomy' => 'product_cat', 'hide_empty' => false]); Foreach ($categories为$ categororie) { Echo "<input type="checkbox" value="$ categororie ->term_taxonomy_id" name="catselected[]"> $ categororie ->slug"; }

这样我把它添加到Woocommerce表。 wp_set_post_terms($product_id, $_POST['catselected'], 'product_cat');

让你的html复选框将是这样的

<input type="checkbox" name="check1">

提交表单后,你需要检查

if (isset($_POST['check1'])) {

    // Checkbox is selected
} else {

   // Alternate code
}

假设check1应该是复选框的名称。如果你的表单提交方法是GET,那么你需要检查$_GET变量像

if (isset($_GET['check1'])) {

   // Checkbox is selected
}