我正在使用codeigniter开发一个应用程序。我的问题是我无法从第二个复选框发布值(在其他情况下复选框)。
查看页面
<div class="form-group">
<?php if($pro[0]['p_featured']==1){ ?>
<label class="checkbox-inline">
<input type="checkbox" value="1" name="featured" checked>featured
Product</label><?php } else {?>
<label class="checkbox-inline">
<input type="checkbox" value="2" name="featured" >featured
Product</label>
<?php } ?>
</div>
我的控制器
echo $this->input->post('featured'); exit;
我可以从第一个条件发布值。但是无法发帖 来自第二个条件的价值
答案 0 :(得分:0)
尝试
isset($this->input->post('featured'))?1:2;
答案 1 :(得分:0)
<input type='checkbox'>
的表单元素如果未选中则不会发布值。因此,如果复选框处于第二个条件且在提交表单时仍未选中,则$this->input->post('featured');
将返回NULL
。
如果您打算使用value
属性来确定哪个复选框输出到了无法正常工作的浏览器,因为如果未选中该复选框,则value
将无法发布
考虑这个解决方案
<div class="form-group">
<label class="checkbox-inline">
<input type="checkbox" name="featured" <?php echo $pro[0]['p_featured'] == 1 ? "checked" : NULL; ?>>featured
Product</label>
</div>
这会生成一个在$pro[0]['p_featured'] == 1
时检查的复选框。
请注意value
属性已被删除。在这种情况下不需要该属性。
处理表单提交时,请确认此复选框的状态
$feature_checked = NULL !== $this->input->post('featured');
如果选中该框,则$feature_checked
的值为TRUE,否则为FALSE。
答案 2 :(得分:0)
<input type="checkbox" id="wifi" name="wi_fi" value="1" <?php if ($post['wi_fi']==1) :?>checked<?php endif;?>/><label for="wifi" >Wi-Fi</label>