我需要在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个文本框和两个按钮。但是当我保存表单时,只有第一个文本框的值存储在数据库中。
我希望保存所有字段。有人能帮助我吗?
答案 0 :(得分:0)
我认为自定义表单字段仅用于创建单个表单字段,因此在保存表单时不会期望后续字段。
你的主要字段(名称为“$ this-&gt; name”的字段)可能是一个隐藏的字段,然后你的jquery用提交的其他数据填充(可能在json中)格式)。
答案 1 :(得分:0)
如果您想要所有三个服务器端的数据,它们实际上应该是表单XML定义文件中的三个单独的文本字段。您的自定义字段只是将三个标准文本字段分组为一个,但正如之前的海报所述,Joomla中的自定义字段适用于处理一个字段。
“最佳”解决方案取决于您要对数据执行的操作以及在代码服务器端执行的操作。