到目前为止,我不认为这是可能的,因为我已经使用了3.5个小时了。没有运气。
我有一张表格。
我有一个选择字段(当然选择选项),我想在选择项旁边显示相关数据。
例如:
在我的添加计划表单中,我有一个标题为“计划详细信息”的选择框。计划详细信息(模型)具有关联的计划详细信息说明(模型)(PlanDetailNote属于PlanDetail)。换句话说,每个计划明细在plan_detail_notes表中都有一个关于它的注释。
我想知道cakephp是否可以像人类一样显示它:
选择计划明细:
[计划明细选项1] - [计划明细注释]
[计划明细选项2] - [计划明细注释]
[计划明细选项3] - [计划明细注释]
[计划明细选项4] - [计划明细注释]
正如你所看到的那样,音符被附加到普通的选择选项中。仅仅是静态的,只是为了查看 - 不需要保存。
CakePHP可以实现吗?
答案 0 :(得分:2)
只是另一个想法,如果你真正想要的是
<select>
<option value="1">[Plan Detail Option 1] - [Plan Detail Note]</option>
<option value="2">[Plan Detail Option 2] - [Plan Detail Note]</option>
...
<option value="N">[Plan Detail Option N] - [Plan Detail Note]</option>
</select>
然后,您可以使用getAll查询手动创建列表(假设关系已正确创建)
[在控制器中]
$plans_list = array();
$plans = $this->Plan->findAll();
foreach($plans as $row) {
$plans_list["{$row['Plan']['id']}"] = "{$row['Plan']['name']} - {$row['PlanDetail']['note']}";
}
$this->set('plans_list', $plans_list);
[然后在视图中]
<?php echo $form->select('Plan.id', $plans_list); ?>
答案 1 :(得分:0)
暂时没有使用Cake,但是在您的计划详细信息控制器中,您可以在将计划详细信息注释发送到视图之前附加它吗?
答案 2 :(得分:0)
听起来像你要做的是将计划详细信息注释显示为选择框旁边的div中的文本。选择选项时,您希望div中的文本更新为所选选项的计划详细信息。
如果这是您想要发生的事情,那么这将需要一些ajax工作。基本上,您将观察“onChange”事件的选择框的字段。该事件将使用您的计划详细信息更新div的innerHtml。
我喜欢将计划详细注释存储为javascript数组或对象,然后在onChange中,将div innerHtml设置为javascript数组中的值。
答案 3 :(得分:0)
zeroSkills,
根据您的概念,我能够让它进行一些调整。这是我做的:
在add.ctp(view)
中...
echo $this->Form->select('plan_detail_id',$plans_list);
...
在函数add()中(在plans_controller.php中)
...
$plans_list = array();
$plans = $this->Plan->PlanDetail->find('all');
foreach ($plans as $row) {
$plans_list["{$row['PlanDetail']['id']}"] = "{$row['PlanDetail']['name']} - {$row['PlanDetailNote']['name']}";
}
$this->set('plans_list', $plans_list);
}
...
我甚至不需要弄乱我的模型,这是一种解脱!
以下是选项输出示例的链接:
如您所见,我根据相关表PlanDetailNote的值附加了“65岁以下”或“65岁以上”。