在joomla中动态添加表单字段

时间:2012-12-17 10:55:53

标签: joomla joomla2.5 joomla-extensions

我想知道是否有可能根据某些选项添加表单字段,

例如:

当用户选择选项数= 8并且用户点击保存时,在下一个视图上,用户会看到8个文本框,每个文本框都有不同的名称。

我试图使用表单字段类而不是.xml文件,但无法使其工作。

Any1知道它是否可能?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以从表单中获取字段数。假设它是10($count)。

下一个视图,您可以循环如下并创建文本框。

for($i = 1; $i <= $count; $i++)
 echo '<input type="text" name="fields[]" class="class_fields">';

在后端,你可以获取如下数据。

$values = JRequest::getVar( 'fields', 'default_values', 'post', 'array' );

Read more

如果您有任何问题,请告诉我

答案 1 :(得分:1)

为了能够动态添加列表项,您必须编写自己的类JFormField并安装在组件内部。

在您的情况下,您扩展JFormFieldList并覆盖getOptions()函数。在.xml中,您使用新创建的输入类型名称。

此处如何创建和使用新字段类(从此处开始):http://docs.joomla.org/Creating_a_custom_form_field_type

接下来的示例如何扩展JFormFieldList类:http://docs.joomla.org/J2.5:How_to_add_custom_filters_to_components

在第二个链接中为了简单起见(仅作为示例)

public function getOptions()
    {
            // Initialize variables.
            $options = array(0=>"Option 0", 1=>"Option 1");


            return $options;
    }