2013-03-08 2 views
1

У меня есть раскрывающийся список и раскрывающиеся варианты в отдельных таблицах. Это хорошо, но теперь я хочу получить все варианты с помощью раскрывающегося кода. На этой странице у меня есть все выпадающие списки и элементы. Скажем, выпадающий код - dropdown1.cakephp получить все выпадающие опции из DB

Я хотел бы быть в состоянии сделать

$this->Form->input('dropdownitem_id', array('options' => $dropdown['dropdown1'])); 

Есть ли способ сделать это без помощника?

ответ

0

Я создал пользовательский помощник, чтобы получить точное поведение, которое я хотел.

2

1) почему вы хотите сделать это «без помощника»?

2) Да, использовать обычный PHP материал - то есть Еогеасп() цикл, который вторит содержание HTML на странице

Просто посмотрите на то, что содержание помощник генерирует, и использовать PHP, чтобы имитировать его.

<select name="whatever"> 
    <?php 
    foreach($items as $item) { 
     echo '<option value=" . $item['id'] . '">' . $item['name'] . '</option>'; 
    } 
    ?> 
</select> 

(что-то подобное - я написал, что быстро с верхней части моей головы, но вы должны получить представление)

0

Вы должны использовать Containable поведение.

http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html

Тогда вы бы запросить элемент верхнего уровня.

После того, как вы это сделали.

Вы должны запустить цикл foreach, пока Дэйв сказал и отформатировал опцию.

Сообщите мне, если вам нужна помощь с защищаемыми, они спасатели жизни и ваш друг!

+0

В ~ 90% моих страниц, которые используют выпадающий список, как указано выше, выпадающий список должен связывать основной элемент с другими элементами. В таких случаях вы не можете использовать Containable, так как это еще не связано, но вместо этого, полный вариант всех вещей, которые можно связать. – Dave

2

В контроллере

$dropdownitems = $this->OtherModel->find('list'); 
$this->set(compact('dropdownitems')); 

По вашему мнению

$this->Form->input('dropdownitem_id'); 

Варианты для выбора будут заполнены автоматически.

Но я не понимаю, что вы имели в виду под помощником?

+0

'$ this-> Form-> input ...' использует« FormHelper »для записи полей ввода и поэтому не является ответом на вопрос. – Dave

+0

почему вы хотите сделать это без помощника? –

+0

То, что я спросил: '1), почему вы хотите сделать это« без помощника »?' – Dave

Смежные вопросы