2012-02-15 9 views
0

jos_workshopsという対応するテーブルを持つcom_workshopsというワークショップを管理するためのJoomlaコンポーネントがあります。Joomla!コンポーネントフォームとフィールドのサブセットを動的に追加/削除するためのjQuery

次に、私はコアcom_usersコンポーネントを持っていて、jos_usersテーブルを持っています。

ユーザーをワークショップ(N、N)に関連付けるために、私はリンクテーブルjos_works_usersを持っています。

フォームフィールドtype = "user"を追加する方法を知っているので、ユーザーのモーダルビューからユーザーを選択できます。

しかし、私は、フォームがI

がしたい、と動的にそれらを削除するには、この1などの多くのフォームフィールドのタイプを追加できるようにしたいと思います。私は考えている

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

しかし、Joomla!内部で可能かどうかわからないフォーム、およびそれを行う方法。

答えて

0

私はmootoolsを使っていましたが、同様のフィールドを作っています。私の場合は、新しいフィールドタイプ(Joomla docs)を作成し、JHTML :: script()を使用していくつかのjavascriptをページに追加します。ブラウザがユーザーIDの配列を渡すことができるように、jform [userids] []のような入力名を使用する必要があります。

私の場合は正確にあなたが好きではなかったが、これはかなり私はそれやった方法です:

<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> 

私のHTMLは、(それが行ごとに2つのテキストフィールドを持っていることに注意してください)このように見えたがあなたのjavascriptは:

  1. 削除ボタンをクリックしたときに行を削除します(mootools:row.dispose()内)。
  2. 追加ボタンをクリックすると、最後の行が表示され、新しい隠し文が作成されます。
  3. DBから以前のデータをロードできるメソッドがあります。
  4. テーブルにロードして(ユーザーIDを選択するため)、(データベースに保存するために)保存するコードを追加します。
関連する問題