Как удалить упаковочный div из формы ввода типа select-множественный - PullRequest
5 голосов
/ 03 марта 2012

У меня есть две таблицы в моей базе данных "cars" и "car_types". Таблица «cars» ссылается на «car_types» под «car_type_id». Например, «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 следующим образом, даже если установлена ​​опция 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 => false удаляет только div, обернутый вокруг всего набора флажков, а не каждого флажка.

Любые идеи о том, как я могу удалить div, который оборачивается вокруг каждого флажка? И, пожалуйста, скажите мне, если я делаю это неправильно.

Ответы [ 2 ]

5 голосов
/ 04 ноября 2014

Я знаю, что вопрос о CakePHP 1.3, но я нашел это при поиске в Интернете, поэтому я поделюсь решением, которое в любом случае помогло мне.

Вы можете передать соответствующий ключ $options для вспомогательной функции input():

'div'=>false

Дополнительная информация: http://api.cakephp.org/2.5/class-FormHelper.html#_input

2 голосов
/ 03 марта 2012

Взглянув на API, вы можете использовать опции массива after и before для управления тем, что идет до и после пары <input> и <label>.Вот документация о функции ввода или API

В качестве альтернативы, вы можете использовать функцию checkbox ( API *)1014 *) в форме помощника, чтобы обойти это

...