いくつかのオプションに応じてフォームフィールドを追加する可能性があるのだろうか、
例えば:
ユーザーがオプションの数=8を選択し、ユーザーが[保存]をクリックすると、次のビューのユーザーに、それぞれ異なる名前の8つのテキストボックスが表示されます。
ファイルを介さずにフォームフィールドクラスを使用しようとしまし.xml
たが、機能させることができません。
Any1はそれが可能かどうかさえ知っていますか?
いくつかのオプションに応じてフォームフィールドを追加する可能性があるのだろうか、
例えば:
ユーザーがオプションの数=8を選択し、ユーザーが[保存]をクリックすると、次のビューのユーザーに、それぞれ異なる名前の8つのテキストボックスが表示されます。
ファイルを介さずにフォームフィールドクラスを使用しようとしまし.xml
たが、機能させることができません。
Any1はそれが可能かどうかさえ知っていますか?
はい、それは可能です。フォームからフィールドの数を取得できます。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' );
何か問題があれば私に知らせてください
リストアイテムを動的に追加できるようにするには、クラスのような独自の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
簡単にするための2番目のリンクでは(たとえばのみ)
public function getOptions()
{
// Initialize variables.
$options = array(0=>"Option 0", 1=>"Option 1");
return $options;
}