預選在我的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