2013-03-08 63 views
1

我在单独的表中有一个下拉和下拉选项。这很好,但现在我希望能够通过下拉代码检索所有选项。在这个页面上,我有所有的下拉菜单和项目。假设下拉代码是dropdown1cakephp从数据库中获取所有下拉选项

我希望能够做到

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

有没有办法做到这一点没有帮助?

回答

0

我创建了一个自定义助手来获得我想要的确切行为。

2

1)你为什么想“没有帮手”呢?

2)是的,正常使用PHP的东西 - 即foreach()循环是HTML内容回声页面

试想一下,在助手产生什么样的内容,并使用PHP来模仿它。

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

(类似的东西 - 我写的很快把我的头顶部,但你应该明白我的意思)

0

您应该使用中可容纳的行为。

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

然后,你将查询顶级元素。

完成之后。

你必须像Dave说的那样运行一个foreach循环并且格式化选项。

让我知道如果你需要帮助的包容,他们是一个救星和你的朋友!

+0

在我的约90%使用上述下拉菜单的页面中,下拉列表是将主项目与其他项目的选择相关联。在这些情况下,您无法真正使用Containable,因为它尚未关联,而是完全选择可关联的所有内容。 – Dave 2013-03-08 17:33:29

2

在控制器中,

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

在你看来

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

用于选择的选项将自动填充。

但我不明白,你的帮助意味着什么?

+0

'$ this-> Form-> input ...'使用“FormHelper”编写输入字段,因此不是问题的答案。 – Dave 2013-03-08 17:30:59

+0

你为什么要不做帮手呢? – 2013-03-08 17:34:27

+0

准确地说,我问:'1)为什么你想这样做“没有帮手”? – Dave 2013-03-08 17:43:47

相关问题