Concrete5通过表单助手创建选择框,数组来自db

时间:2016-06-19 14:20:20

标签: php arrays drop-down-menu helper concrete5

我正在尝试在单个页面上使用db中的数组创建一个选择框,使用内部帮助程序。 我在单页控制器中使用:

$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>

任何人都可以指出我的问题在哪里? 顺便说一下,我正在进行Concrete 5.7.5.8安装。 谢谢,Xaba

1 个答案:

答案 0 :(得分: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');