我想知道是否有可能根据某些选项添加表单字段,
例如:
当用户选择选项数 = 8 并单击保存时,在下一个视图中,用户会看到 8 个文本框,每个文本框都有不同的名称。
我试图不通过.xml
文件使用表单字段类,但无法使其正常工作。
Any1知道这是否可能?
我想知道是否有可能根据某些选项添加表单字段,
例如:
当用户选择选项数 = 8 并单击保存时,在下一个视图中,用户会看到 8 个文本框,每个文本框都有不同的名称。
我试图不通过.xml
文件使用表单字段类,但无法使其正常工作。
Any1知道这是否可能?
为了能够动态添加列表项,您必须编写自己的 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;
}
是的,这是可能的。您可以从表单中获取字段数。假设它是 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' );
如果您有任何问题,请告诉我