在WordPress网站上,我希望有一个表单,用户可以提交有关他们提供的课程的数据,但有些提供的课程多于其他课程。因此,我想给他们一个选项,在表单中添加另一个字段,所以看起来有点像下面这样。 基本形式如下:
Course name (text field) - language (dropdown) - date (date picker or text field)
但是如果用户提供2门课程,他们就可以按下按钮,例如“添加行”。并且它会再次给它们三个相同的行。看起来像
Course name 1 - language - date [add row]
Course name 2 - language - date [add row]
但是,如果用户提供1门课程,但是使用2种语言和3个日期,他们应该可以输入,看起来像
Course 1 - language 1 [add language]- date 1[add date][add row]
language 2 [add language]- date 2[add date][add row]
date 3[add date][add row]
Course 2 - language 1 [add language]- date 1[add date][add row]
language 2 [add language]- date 2[add date][add row]
language 3 [add language]
依此类推......
是否可以使用动态字段执行此操作以及如何执行此操作?是否有一个WordPress插件已经提供此(首选)?
答案 0 :(得分:1)
我相信你需要在前端做到这一点。
为此你需要一些jquery。
将有关课程的字段分组。例如:
$('#add-row').click(function(){
$('.rows').append("<div class='course-row'><input type='text' name='course-name'><input type='text' name='language'><button class='remove'>remove</button></div>");
});
$(document).on('click', '.remove', function(){
$(this).closest('.course-row').remove();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='rows'>
<div class='course-row'>
<input type='text' name='course-name'>
<input type='text' name='language'>
<button class='remove'>remove</button>
</div>
</div>
<button id='add-row'>Add row</button>
&#13;
因此,您可以使用select并将所有内容包装到表单中,而不是第二个输入。然后,一旦提交表单,只需从重复的字段中获取并解析传入的数据作为数组。
答案 1 :(得分:0)
你应该看看Advanced Custom Fields。它是一个WordPress插件,可以帮助创建表单,并有一个repeater field addon,可以帮助您。
转发器字段允许您将输入分组在一起,并允许用户根据需要重复这些输入。查看their doc on nested repeaters以获得您想要的效果。