使用CakePHP:
我有多对一的关系,让我们假装它是很多Leafs to Trees。当然,我烘焙了一个表单来向树中添加一个Leaf,你可以使用表单助手创建的下拉框(标记)来指定它。
唯一的一点是,SELECT框始终默认为Tree#1,但我希望它默认为它被添加到的树:
例如,调用example.com/leaf/add/5
将调出接口以向树#5添加新的Leaf。 Leaf.tree_id
的下拉框默认为“树5”,而不是当前默认为“树1”。
我需要在Leaf控制器和Leaf view/add.ctp
中放置什么来执行此操作?
答案 0 :(得分:50)
在CakePHP 1.3中,使用'default'=>value
选择选择输入中的默认值:
$this->Form->input('Leaf.id', array('type'=>'select', 'label'=>'Leaf', 'options'=>$leafs, 'default'=>'3'));
答案 1 :(得分:20)
您绝不能使用select()
,text()
或radio()
等;这是一种可怕的做法。您应该使用input()
:
$form->input('tree_id', array('options' => $trees));
然后在控制器中:
$this->data['Leaf']['tree_id'] = $id;
答案 2 :(得分:8)
第三个参数应该是数组('selected'=> value)
答案 3 :(得分:8)
$this->Form->input('Leaf.id', array(
'type'=>'select',
'label'=>'Leaf',
'options'=>$leafs,
'value'=>2
));
这将从$ leafs中的选项列表中选择默认的第二个索引位置值。
答案 4 :(得分:1)
假设您使用表单助手生成表单:
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
设置第三个参数以设置所选选项。
答案 5 :(得分:0)
要在选择框中设置默认文本,请使用$form->select()
方法。这是你如何做到的。
$options = array('m'=>'Male','f'=>'Female','n'=>'neutral');
$form->select('Model.name',$options,'f');
默认情况下,上面的代码会在列表框中选择Female
。
继续烘烤......
答案 6 :(得分:0)
FormHelper::select(string $fieldName, array $options,
array $attributes)
$attributes['value']
设置应选择默认值
<?php echo $this->Form->select('status', $list, array(
'empty' => false,
'value' => 1)
); ?>
答案 7 :(得分:0)
如果您使用的是cakephp 3.0及以上版本,则可以使用空属性在select输入中添加默认值,如下例所示。
echo $this->Form->input('category_id', ['options'=>$categories,'empty'=>'Choose']);
答案 8 :(得分:0)
对此的最佳答案可能是
请勿为此作业使用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
));
希望有帮助。
答案 9 :(得分:0)
cakephp版本> = 3.6
echo $this->Form->control('field_name', ['type' => 'select', 'options' => $departments, 'default' => 'your value']);
答案 10 :(得分:0)
在 CakePHP 4.2 中,带有默认值的 select 表单元素的正确语法非常简单:
const [x , setX] = useState([]);
const subscribe = Gyroscope.addListener( async({x , y , z , }) => {
setX((prev) => [x, ...prev])
setY(y)
setZ(z)
})
// let array = []
let m = x
console.log('my array is',m)
如果希望不需要解释,default=1 表示第二个值,default=0 表示第一个值。 ;)
选择值时要非常小心,因为它可能会变得有点棘手。上面的示例没有选择字段的特定值,因此其值会自动编号。如果您为每个选择列表条目设置了特定值,并且想要一个默认值,请设置其特定值:
echo $this->Form->select(
'fieldname',
['value1',
'value2',
'value3'],
['empty' => '(auswählen)','default'=>1]
);
这个例子来自官方的 4.x Strawberry Cookbook。 https://book.cakephp.org/4/en/views/helpers/form.html#options-for-control