我想知道是否有可能根据某些选项添加表单字段,
例如:
当用户选择选项数= 8并且用户点击保存时,在下一个视图上,用户会看到8个文本框,每个文本框都有不同的名称。
我试图使用表单字段类而不是.xml
文件,但无法使其工作。
Any1知道它是否可能?
答案 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' );
如果您有任何问题,请告诉我
答案 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;
}