预选在我的Joomla自定义组件我用SQL字段类型(item.xml):的Joomla 1.7多个SQL名单上没有编辑
<field name="colors" type="sql" query="SELECT id ,name FROM #__products_colors" multiple="multiple" key_field="id" value_field="name" class="inputbox"
label="colors" description="COM_PRODUCTS_FORM_DESC_ITEM_COLORS" />
我认为我所说的领域是这样的:
<?php echo $this->form->getInput('colors'); ?>
,给了我一个很好的流畅选择框是这样的:
<select id="jform_colors" class="inputbox" multiple="multiple" name="jform[colors][]" aria-invalid="false">
<option value="1">blue</option>
<option value="2">yellow</option>
<option value="3">red</option>
<option value="4">green</option>
<option value="5">purple</option>
当我保存此颜色的场,AF例如选择蓝色和红色,例如它会在我的数据库中保存为1,3。 Joomla为我做了所有的工作......(感谢Joomla)
现在,也许我变得贪婪,但不知何故,我希望Joomla为我预先选择这些值,当我在保存后编辑条目。它与其他类型的领域一样,为什么不在这里?有什么我忘记了吗?
谢谢!
编辑:在回答绑定功能,我调整了一点。
public function bind($array, $ignore = '') {
if (isset($array['params']) && is_array($array['params'])) {
$registry = new JRegistry();
$registry->loadArray($array['params']);
$array['params'] = (string) $registry;
}
//print_r($array);
if (key_exists('colors', $array) && is_array($array['colors'])) {
echo "pwn";
$array['colors'] = implode(',', $array['colors']);
}
if (isset($array['metadata']) && is_array($array['metadata'])) {
$registry = new JRegistry();
$registry->loadArray($array['metadata']);
$array['metadata'] = (string) $registry;
}
return parent::bind($array, $ignore);
}
而且不使用过滤器= “safehtml” :)
运气好一切!
你可以显示php代码,你在哪里得到表单? – Gaurav 2012-01-09 15:49:33
嗯,是的,其中大部分是<?php echo $ this-> form-> getInput('colors'); ?>
– 2012-01-10 14:25:03你能模块的代码吗?你如何获得表单对象? – Gaurav 2012-01-10 14:56:31