【问题标题】:unable to post vales from checkbox in codeigniter [duplicate]无法从codeigniter中的复选框发布值[重复]
【发布时间】:2023-03-07 21:43:02
【问题描述】:

我正在使用 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;

我能够从第一个条件发布价值。但无法发布 第二个条件的值

【问题讨论】:

  • 有一个条件if($pro[0]['p_featured']==1){渲染复选框,你确定你的第二个复选框正在渲染
  • 是的,我可以在我的表单中看到未选中的复选框。在检查我可以看到&lt;input type="checkbox" value="2" name="featured"&gt;
  • 当你通过echo "&lt;pre&gt;"; print_r($_POST);打印整个输出时你会得到什么
  • 获取除checkbox值以外的所有值
  • 好的,如果复选框不在表单标签内,您将无法获得复选框的值。

标签: php forms codeigniter post codeigniter-2


【解决方案1】:
<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>

【讨论】:

  • 如果它之前被标记并保存在数据库中,则此框将被标记为未标记:)
  • 如果您为答案添加某种形式的解释会有所帮助。
【解决方案2】:

&lt;input type='checkbox'&gt; 的表单元素如果未选中则不会发布值。因此,如果复选框处于第二个条件并且在提交表单时仍未选中,则$this-&gt;input-&gt;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。

【讨论】:

    【解决方案3】:

    试试

    isset($this->input->post('featured'))?1:2;
    

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多