我的 .xml
文件中的 Joomla 2.5
有多个 checkboxes
字段
<field name="player_number"
type="text"
label="Player number"
description="Enter Player's number here"
class="inputbox"
size="30"
required="true"
/>
<field name="player_dob" type="calendar" default="" label="Select a date" description="" required="true" format="%Y-%m-%d" />
<field name="player_position" type="checkboxes">
<option value="Left">Left</option>
<option value="Right">Right</option>
<option value="Middle">Middle</option>
</field>
我在数据库中有相关数据列,例如 player_number
、player_dob
和 player_position
。
我有工具栏,可以在其中添加新
记录或编辑
现有记录。
我可以成功ADD
player_number
和player_dob
,并且现有值也会加载到EDIT
View 中。
问题是 CHECKBOX 值未保存到数据库中。
即使我从 phpmyadmin
输入 player_position
的值,相关值也不会在编辑 View 表单中显示为“已检查”
最佳答案
令人烦恼的是,该字段类型在文档中指出“它将为您创建复选框,并以数组形式提交它们的值,但不会将它们存储在数据库中。”
这意味着如果您希望保存它,您必须重写 JTable 存储函数。 http://docs.joomla.org/API16:JTable/store
下面的代码是我上次使用Joomla 3时使用的相关代码(2.5应该类似)。 demofield
是我的复选框的名称,edit
是出现复选框的 View 的名称。此覆盖保存在 admin/tables/edit.php 下:
class TableEdit extends JTable {
public function store($updateNulls = true)
{
JArrayHelper::toString($this->demofield);
$this->demofield= implode(',', $this->demofield);
return parent::store($updateNulls);
}
}
还值得注意的是,列表字段类型允许多选,并将保存在数据库中。这可能是一个更简单的解决方案。 http://docs.joomla.org/List_form_field_type
关于php - 无法在数据库中保存 CHECKBOX 字段类型 - Joomla 2.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624532/