cakephp复选框显示了额外的隐藏字段 foreach($apps作为$app){ echo$this->Form->input('Application',array('type'=>'checkbox','id'=>$app['Application']['description'],'div'=>false,'type'=>'checkbox','value'=>$app['Application']['description'],'label'=>$app['Application']['description']); } GGBS 编辑天气编辑

cakephp复选框显示了额外的隐藏字段 foreach($apps作为$app){ echo$this->Form->input('Application',array('type'=>'checkbox','id'=>$app['Application']['description'],'div'=>false,'type'=>'checkbox','value'=>$app['Application']['description'],'label'=>$app['Application']['description']); } GGBS 编辑天气编辑,cakephp,cakephp-1.3,cakephp-2.0,Cakephp,Cakephp 1.3,Cakephp 2.0,不确定隐藏字段来自何处。 谢谢如果您没有选中复选框并发布表单以便跳入验证,那么这是一个蛋糕回退。 在这种情况下,php不会为此字段提交任何内容(甚至不是空字符串)。因此,cake找到了一个聪明的解决方法来克服这个问题 顺便说一句,单选按钮也有类似的功能。即使有一个隐藏字段,我们也可以在提交表单时将其禁用,这样它就不会出现在提交的数据中。。 你需要用下面的方式写 foreach($apps as $app){ echo $this->Form->input('App

不确定隐藏字段来自何处。
谢谢

如果您没有选中复选框并发布表单以便跳入验证,那么这是一个蛋糕回退。 在这种情况下,php不会为此字段提交任何内容(甚至不是空字符串)。因此,cake找到了一个聪明的解决方法来克服这个问题


顺便说一句,单选按钮也有类似的功能。

即使有一个隐藏字段,我们也可以在提交表单时将其禁用,这样它就不会出现在提交的数据中。。 你需要用下面的方式写

foreach($apps as $app){


        echo $this->Form->input('Application', array('type'=>'checkbox', 'id'=>$app['Application']['description'], 'div'=>false,'type'=>'checkbox','value' => $app['Application']['description'],'label'=>$app['Application']['description']));



    }


<div class="checkboxes"> 
    <input type="hidden" name="data[Group][Application]" id="GG_" value="0"/><input type="checkbox" name="data[Group][Application]"  id="GG" value="GG"/><label for="GG">GG</label><input type="hidden" name="data[Group][Application]" id="BS_" value="0"/><input type="checkbox" name="data[Group][Application]"  id="BS" value="BS"/><label for="BS">BS</label>  <div>
</div>
    <input type="hidden" name="data[Group][Grant]" id="GroupGrant_" value="0"/><input type="checkbox" name="data[Group][Grant]"  style="float: left; display: inline" value="Edit Weather" id="GroupGrant"/><label for="GroupGrant">Edit Weather</label><input type="hidden" name="data[Group][Grant]" id="GroupGrant_" value="0"/><input type="checkbox" name="data[Group][Grant]"  style="float: left; display: inline" value="Edit Traffic" id="GroupGrant"/><label for="GroupGrant">Edit </label>       




        </div>

当我点击submit时,它只添加了最后一个复选框。我想可能是因为这个,但这很可能会破坏工作流程。我不建议这样做。我喜欢这个答案的关键点--
hiddenField
参数排在最后
echo $this->Form->input('Application', array('type'=>'checkbox', 'id'=>$app['Application']['description'], 'div'=>false,'type'=>'checkbox','value' => $app['Application']['description'],'label'=>$app['Application']['description'],'hiddenField'=>false));