Vraag CakePHP selecteert de standaardwaarde in SELECT-invoer


CakePHP gebruiken:

Ik heb een veel-op-één relatie, laten we doen alsof het veel blaadjes naar bomen zijn. Natuurlijk heb ik een formulier gebakken om een ​​leaf aan een boom toe te voegen, en je kunt opgeven welke tree het is met een vervolgkeuzelijst (tag) gemaakt door de formulierhelper.

Het enige is dat het vak SELECT altijd standaard naar Tree # 1 gaat, maar ik zou graag zien dat het standaard de Tree is waaraan het wordt toegevoegd:

Bijvoorbeeld bellen example.com/leaf/add/5 zou de interface naar voren brengen om een ​​nieuwe Leaf to Tree # 5 toe te voegen. De vervolgkeuzelijst voor Leaf.tree_id zou standaard "Boom 5", in plaats van "Boom 1", die het momenteel standaard gebruikt.

Wat moet ik in mijn Leaf-controller en Leaf doen view/add.ctp om dit te doen?


14
2017-10-09 19:57


oorsprong


antwoorden:


Je moet nooit gebruiken select()of text()of radio() enz.; het is vreselijke oefening. Je zou ... moeten gebruiken input():

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

Vervolgens in de controller:

$this->data['Leaf']['tree_id'] = $id;

19
2017-10-10 06:58



Gebruik in CakePHP 1.3 'default'=>value om de standaardwaarde in een select-ingang te selecteren:

$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));

49
2017-08-05 17:17



de derde parameter zou moeten zijn als array ('selected' => waarde)


8
2017-07-07 12:42



 $this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));

Hiermee wordt de standaardwaarde voor de tweede indexpositie geselecteerd in de lijst met opties in $ leafs.


8
2017-12-26 11:43



Ervan uitgaande dat u formulierhulp gebruikt om het formulier te genereren:

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

Stel de derde parameter in om de geselecteerde optie in te stellen.


1
2017-10-09 21:02



Om een ​​standaardtekst in een selectiekader te maken, gebruikt u de $form->select() methode. Hier is hoe je het doet.

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

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

De bovenstaande code zal selecteren Female in de keuzelijst standaard.

Blijf bakken ...


0
2017-09-28 05:20



FormHelper::select(string $fieldName, array $options, 
array $attributes)

$attributes['value'] om in te stellen welke waarde standaard moet worden geselecteerd

<?php echo $this->Form->select('status', $list, array(
    'empty' => false, 
    'value' => 1)
); ?>

0
2018-04-25 12:29



Als u cakephp versie 3.0 en hoger gebruikt, kunt u standaardwaarde toevoegen in select invoer met behulp van leeg attribuut zoals in het onderstaande voorbeeld.

echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);

0
2017-07-08 10:11



Het beste antwoord hierop zou kunnen zijn

Gebruik in plaats hiervan geen selct voor deze taakinvoer

soortgelijk

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
        ));

Hoop dat het helpt.


0
2017-07-20 17:23