Concrete5 通过表单助手使用数据库中的数组创建 select 框
Concrete5 create select box via form helper with array from db
我正在尝试制作一个 select 框,使用内置帮助程序,在单个页面上使用来自数据库的数组。
我在单页控制器中使用:
$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' => 'Bucuc', '2' => '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
已解决。
创建了 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');
我正在尝试制作一个 select 框,使用内置帮助程序,在单个页面上使用来自数据库的数组。 我在单页控制器中使用:
$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' => 'Bucuc', '2' => '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
已解决。 创建了 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');