如何从select-multiple类型的Form输入中删除包装div

时间:2012-03-03 11:49:34

标签: cakephp cakephp-1.3

我的数据库中有两个表“cars”和“car_types”。 “cars”表通过“car_type_id”表示“car_types”。例如,“car_types”有2个字段“id”和“car_type”。它还有3个条目“新”,“二手经销商”,“私人使用”。如何在我的视图中将这3个条目显示为复选框。

我正在尝试调整输出:

foreach ($car_types as $car_type)                       
{
     $car_type_new[$car_type['CarType']['id']]=$car_type['CarType']['car_type'];
}                   
echo $this->Form->input('Car.car_type_id',array('div'=>false,'multiple'=>'checkbox','options'=>$car_type_new,'style'=>"margin-left:20px; padding:0;"));

我还想删除每个复选框周围的包装div。

每个复选框都由Form helper输出,即使div =>也是如此。设置了false选项:

<input type="hidden" id="CarCarTypeId" value="" name="data[Car][car_type_id]">

<div class="checkbox"><input type="checkbox" id="CarCarTypeId1" value="1" name="data[Car][car_type_id][]"><label for="CarCarTypeId1">New</label></div>
<div class="checkbox"><input type="checkbox" id="CarCarTypeId2" value="2" name="data[Car][car_type_id][]"><label for="CarCarTypeId2">Used Dealer</label></div>
<div class="checkbox"><input type="checkbox" id="CarCarTypeId3" value="3" name="data[Car][car_type_id][]"><label for="CarCarTypeId3">Used Private
</label></div>
div =&gt; false选项仅删除围绕整个复选框集合的div,而不是每个复选框。

关于如何删除包围每个复选框的div的任何想法?如果我做错了,请告诉我。

2 个答案:

答案 0 :(得分:5)

我知道问题是关于CakePHP 1.3,但我在互联网上搜索时发现了这个问题,所以无论如何我会分享对我有用的解决方案。

您可以将相应的密钥传递给$options辅助函数的input()

'div'=>false

更多信息:http://api.cakephp.org/2.5/class-FormHelper.html#_input

答案 1 :(得分:2)

查看API,您可以使用afterbefore数组选项来控制<input><label>对之前和之后的内容。这是documentation on the input functionAPI

或者,您可以使用表单助手中的checkbox functionAPI)来绕过它