【发布时间】:2023-03-29 05:48:02
【问题描述】:
我需要在 joomla 3.0 的模块中使用 xml 创建一些自定义字段。 我做了这样的事情,如下所示。 我的字段 mod_category.xml 文件代码是:
<fields name="params">
<fieldset name="protection" addfieldpath="/modules/mod_careercategory/include/" label="tagelement">
<field name="headerTitle" type="text" default="" label="HEADER_TITLE" description="HEADER_TITLE_DESC"/>
<field name="Title" type="tagelements" label="TITLE" id="Title"/>
</fieldset>
</fields>
我的 tagelements.php 代码是:
jimport('joomla.form.formfield');
class JFormFieldTagElements extends JFormField
{
protected $type = 'tagelements'; //the form field type
protected function getInput()
{
return '<input type="text" name="'.$this->name.'" id="'.$this->id.'" label="Title"/><br />'.
'<input type="text" name="Link" id="Link" label="Link"/><br />'.
'<input type="text" name="Order" id="order" label="order"/><br />'.
'<input type="button" id="btnAdd" name="addmore" value="Add more">
<input type="button" id="btnDel" value="Remove" />';
}
我有两个按钮,添加和删除,使用 jQuery 将在单击时添加更多这些字段。单击删除按钮时,字段将被删除。
当我运行此代码时,会显示 4 个文本框和两个按钮。但是当我保存表单时,只有第一个文本框的值存储在数据库中。
我希望保存所有字段。有人可以帮帮我吗?
【问题讨论】:
-
请显示您用于添加/删除字段的 jQuery 代码
-
您打算如何将动态创建的字段存储在静态数据库中?一种方法是使用 json 对字段进行编码并将它们存储在数据库的属性字段中
-
$this->name有一个类似 jform 的字符串,因此您需要手动/以编程方式将其添加到 Link 和 Order 的名称中 元素。它变成说<input type="text" name="jform[Link]" id="jform_Link" label="Link"/>