2016-06-19 52 views
1

我试图做一个选择框,使用帮助中的构建,从数据库在单个页面上的数组。Concrete5创建通过表单助手与数组从数据库

$comp = $db->getAll('SELECT id, name FROM table', array()); 
$this->set('companies', $comp); 

和在单页:: 我在单页控制器所使用

$cmp = array(); 
foreach($companies as $company){ 
$cmp[] = "'".$company['id']."' => '".$company['name']."'"; 
}; 
$cmp = implode(", ", $cmp); 
echo $form->select('companyID', array($cmp), '1'); 

,结果是这样的: <select id="companyID" name="companyID" ccm-passed-value="1" class="form-control" pmbx_context="B49783CE-698A-47B4-8895-3D930C747D42"><option value="0">'1' =&gt; 'Bucuc', '2' =&gt; 'Neocrest'</option></select>

我的意思,而不是为每个阵列的新选项它给我一个单一的价值,并且一次过去整个阵列。 我想获得: <select id="companyID" name="companyID" > <option value="1">Bucuc</option> <option value="2">Neocrest</option> </select>

任何人都可以指出我的问题在哪里? 顺便说一句,我正在做一个混凝土5.7.5.8安装。 谢谢,Xaba

回答

1

解决。 创建2个数组,一个用于键和一个用于值,然后将它们组合。 下面是最终代码:

$key = array(); 
$value = array(); 
foreach($companies as $company){ 
    $key[] = $company['id'];   
    $value[] = $company['name']; 
}; 
$c = array_combine($key, $value); 
echo $form->select('companyID', $c, '1');