的Joomla!组件表单和jQuery动态添加/删除字段子集

时间:2012-02-15 15:57:24

标签: php javascript jquery joomla

我有一个用于管理研讨会的Joomla组件,称为com_workshops及其相应的表,jos_workshops。

然后我拥有核心com_users组件及其jos_users表。

我有一个链接表jos_works_users,以便将用户与研讨会相关联(N,N)。

我知道如何添加表单字段type =“user”,以便我可以从用户模态视图中选择用户。

但我希望该表单能够像我一样添加尽可能多的表单字段类型

想要并动态删除它们。我正在考虑

jQuery (append(), clone(), remove() functions)

但不知道Joomla内部是否可能!形式,以及如何做到。

1 个答案:

答案 0 :(得分:0)

虽然我使用了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应该:

  1. 当用户点击删除按钮时删除一行(在mootools:row.dispose()中)。
  2. 单击添加按钮时,使最后一行可见并创建一个新的隐藏行。
  3. 有一个可以从DB加载以前数据的方法。
  4. 在加载表中添加代码(选择用户ID)并存储(将它们保存到数据库)。