我有一个小部件,可以在后端选择多个复选框。目前,我在窗口小部件的表单功能中有以下代码。
<label for="<?php echo $this->get_field_id("types"); ?>">Types</label>
<?php foreach ($types as $key => $val) : ?>
<p>
<input class="checkbox" id="<?php echo $this->get_field_id("types") . $key; ?>" name="<?php echo $this->get_field_name("types"); ?>[]" type="checkbox" value="<?php echo $key; ?>" <?php checked("1", array_key_exists($key, $instance["types"])); ?> />
<label for="<?php echo $this->get_field_id("types") . $key; ?>"><?php echo $val; ?></label>
</p>
<?php endforeach; ?>
正确保存值,但不会显示检查值。有人可以帮我弄这个吗。我不确定在这种情况下应该如何使用checked()函数
谢谢。
答案 0 :(得分:0)
<强>解决!! 强>
在给定的代码中,我只需要设置如下,
<input class="checkbox" id="<?php echo $this->get_field_id("types") . $key; ?>" name="<?php echo $this->get_field_name("types"); ?>[]" type="checkbox" value="<?php echo $key; ?>" <?php checked(in_array($key, $instance["types"])); ?> />
而不是关注
<input class="checkbox" id="<?php echo $this->get_field_id("types") . $key; ?>" name="<?php echo $this->get_field_name("types"); ?>[]" type="checkbox" value="<?php echo $key; ?>" <?php checked("1", array_key_exists($key, $instance["types"])); ?> />
感谢@Mittul的帮助!!