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


当前回答

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

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

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

其他回答

Wordpress有checked()函数。 参考:https://developer.wordpress.org/reference/functions/checked/

checked( mixed $checked, mixed $current = true, bool $echo = true )

描述 比较前两个参数,如果相同则标记为选中

参数 美元的检查 (混合)(必选)要比较的值之一

当前美元 (混合)(可选)(true)如果不是true,要比较的另一个值 缺省值:true

美元的回声 (可选)是否返回或返回该字符串 缺省值:true

返回#返回 (string) HTML属性或空字符串

当使用复选框作为数组时:

<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">

你应该使用in_array():

if(in_array('Orange', $_POST['food'])){
  echo 'Orange was checked!';
}

记得先检查数组是否被设置,例如:

if(isset($_POST['food']) && in_array(...

让你的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
} 

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

您应该为您的输入指定名称。 然后点击哪个框,你将在你的选择方法中收到“on”

Array
(
    [shch] => on
    [foch] => on
    [ins_id] => #
    [ins_start] => شروع گفتگو
    [ins_time] => ما معمولاً در چند دقیقه پاسخ میدهیم
    [ins_sound] => https://.../media/sounds/ding-sound-effect_2.mp3
    [ins_message] => سلام % به کمک نیاز دارید؟
    [clickgen] => 
)

我的表单名中有两个复选框分别是shch和foch