CakePHP выбрать значение по умолчанию на входе SELECT - PullRequest
15 голосов
/ 09 октября 2009

Использование CakePHP:

У меня отношения многие-к-одному, давайте представим, что это много Листьев для Деревьев. Конечно, я испек форму для добавления листа в дерево, и вы можете указать, какое это дерево, с помощью раскрывающегося списка (тега), созданного помощником формы.

Единственное, поле SELECT всегда по умолчанию имеет значение Tree # 1, но я бы хотел, чтобы оно по умолчанию использовалось для дерева, к которому оно добавляется:

Например, вызов example.com/leaf/add/5 вызовет интерфейс для добавления нового Листа в Дерево # 5. В раскрывающемся списке Leaf.tree_id по умолчанию будет использоваться «Дерево 5», а не «Дерево 1», которое в настоящее время используется по умолчанию.

Что мне нужно вставить в контроллер Leaf и Leaf view/add.ctp для этого?

Ответы [ 10 ]

51 голосов
/ 05 августа 2011

В CakePHP 1.3 используйте 'default'=>value, чтобы выбрать значение по умолчанию для выбранного входа:

$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
20 голосов
/ 10 октября 2009

Вы никогда не должны использовать select(), или text(), или radio() и т. Д .; это ужасная практика. Вы должны использовать input():

$form->input('tree_id', array('options' => $trees));

Тогда в контроллере:

$this->data['Leaf']['tree_id'] = $id;
8 голосов
/ 26 декабря 2013
 $this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));

Это выберет значение второй позиции индекса по умолчанию из списка опций в $ leafs.

8 голосов
/ 07 июля 2010

третий параметр должен быть похож на массив ('selected' => value)

1 голос
/ 10 октября 2009

Предполагается, что вы используете помощник по формам для создания формы:

select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)

Установите третий параметр для установки выбранной опции.

0 голосов
/ 27 декабря 2018

Cakephp версия> = 3,6

echo $this->Form->control('field_name', ['type' => 'select', 'options' => $departments, 'default' => 'your value']);
0 голосов
/ 20 июля 2018

Лучший ответ на это может быть

Не использовать selct для этой работы вместо ввода

как это

echo  $this->Form->input('field_name', array(
          'type' => 'select',
            'options' => $options_arr, 
            'label' => 'label here',
            'value' => $id,  // default value
            'escape' => false,  // prevent HTML being automatically escaped
            'error' => false,
            'class' => 'form-control' // custom class you want to enter
        ));

Надеюсь, это поможет.

0 голосов
/ 08 июля 2016

Если вы используете cakephp версии 3.0 и выше, вы можете добавить значение по умолчанию в select input, используя пустой атрибут, как показано в примере ниже.

echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);
0 голосов
/ 25 апреля 2013
FormHelper::select(string $fieldName, array $options, 
array $attributes)

$attributes['value'], чтобы установить, какое значение должно быть выбрано по умолчанию

<?php echo $this->Form->select('status', $list, array(
    'empty' => false, 
    'value' => 1)
); ?>
0 голосов
/ 28 сентября 2011

Чтобы сделать текст по умолчанию в поле выбора, используйте метод $form->select(). Вот как ты это делаешь.

$options = array('m'=>'Male','f'=>'Female','n'=>'neutral');

$form->select('Model.name',$options,'f');

Приведенный выше код выберет Female в списке по умолчанию.

Продолжай печь ...

...