我创建了一个组件。我尝试将数据从xml表单存储到数据库中。这适用于所有文本字段,但“复选框”字段会产生问题。
这是xml代码:
<field name="color" type="checkboxes" label="COM_COLOR" multiple="true">
<option value="1">red</option>
<option value="2">blue</option>
<option value="3">green</option>
<option value="4">yellow</option>
</field>
edit.php中的代码
<?php echo $this->form->getInput('color'); ?>
与Joomla文档完全相同: http://docs.joomla.org/Checkboxes_form_field_type
但是,如果我单击以保存复选框值未存储在数据库中。有人可以帮忙吗?感谢
Joomla版本:3.2.1
编辑:现在工作! 将以下代码写入JTable扩展的php文件中。 (your_component /表/ your_file.php)
public function store($updateNulls = true)
{
JArrayHelper::toString($this->color);
$this->color= implode(',', $this->color);
return parent::store($updateNulls);
}
答案 0 :(得分:0)
在您提供的文档中明确说明:
注意:[...] 它会为您创建复选框,并以数组的形式提交其值,但不会将它们存储在数据库中< / strong>。
要检索必须按照documentation that you provided中的说明执行的值,请获取复选框值的整个数组并单独处理它们。否则,您可以创建单独的复选框,以便开箱即用更多信息here。
答案 1 :(得分:0)
在Joomla&gt; 2.5您可以将其存储为逗号分隔的字符串。您必须覆盖默认保存功能,添加一行以创建逗号分隔的字符串。
例如:
function save(){
$data = JRequest::getVar( 'jform', null, 'post', 'array' );
$checkbox_options = $data['checkbox_field_name'];
$data['checkbox_field_name']=implode(",", $checkbox_options);
JRequest::setVar('jform', $data );
return parent::save();
}
希望这有助于拯救某些人&#39;时间。 :)快乐的编码.. !!!