我有一个用于管理车间的Joomla组件,称为com_workshops及其相应的表jos_workshops。
然后我有了核心的com_users
组件及其jos_users
表。
我有一个链接表jos_works_users
,用于将用户与车间(N,N)关联起来。
我知道如何添加一个表单字段type="user",这样我就可以从用户模式视图中选择一个用户。
但我希望表单能够添加与一样多的表单字段类型
想要,并动态删除它们。我在考虑
jQuery (append(), clone(), remove() functions)
但不知道在Joomla里面是否可能!表单,以及如何执行。
我制作了一个类似的字段,尽管我使用了mootools。如果我是你,我会创建一个新的字段类型(Joomla-docs),并使用JHTML::script()向页面添加一些javascript。您需要使用像jform[userids][]这样的输入名称,以便浏览器可以传递一个用户id数组。
我的案子和你的不完全一样,但我就是这样做的:
我的HTML是这样的(注意每行有两个文本字段):
<div id="ingredientList1">
<div class="ingredient-row">
<div class="delete"></div>
<input type="text" class="amountField" style="display: block; " name="jform[ingredientAmounts][]">
<input type="text" class="nameField" style="display: block; " name="jform[ingredients][]">
</div>
<div class="ingredient-row">
<div class="delete"></div>
<input type="text" class="amountField" style="display: block; " name="jform[ingredientAmounts][]">
<input type="text" class="nameField" style="display: block; " name="jform[ingredients][]">
</div>
<div class="ingredient-row">
<div class="add"></div>
<input type="text" class="amountField" style="display: none; ">
<input type="text" class="nameField" style="display: none; ">
</div>
</div>
您的javascript应该:
- 当用户单击删除按钮时,删除一行(在mootools:row.dispose()中)
- 使最后一行可见,并在单击添加按钮时创建一个新的隐藏行
- 有一个方法可以从数据库加载以前的数据
- 在加载(选择用户id)和存储(将它们保存到数据库)时,将代码添加到表中