web-dev-qa-db-ja.com

SilverStripe PHP Forms-FieldGroup内にSelectionGroupをネストすると、関連するSelectionGroup_Itemsのラジオボックスの1つが表示されません。なぜですか?

2つのFieldGroupsがあるフォームがあり、FieldGroupsの1つにSelectionGroupがあります。

SelectionGroup_ItemsはFieldGroupの形式で表示されますが、オプションの1つを選択するラジオボックスは表示されません。 FieldGroupを削除すると、再び機能します。

フレームワークのテンプレートを見てきましたが、FieldGroup_holder.ssSmallFieldHolderFieldHolderラジオボックスが再び表示され、正常に機能します。テンプレートに従ってSelectionGroupに従っていないテンプレートを確認しようとしましたが、迷子になります。

コードの例を次に示します

$fields = FieldList::create(
    FieldGroup::create(
        TextField::create('Name', 'Name')
    ),
    FieldGroup::create(
        SelectionGroup::create(
            'Test1or2',
            array(
                SelectionGroup_Item::create(
                    'Test1', array(
                        TextField::create('Test1', 'Test1')
                    ),
                    'Test1'
                ),
                SelectionGroup_Item::create(
                    'Test2', array(
                        TextField::create('Test2', 'Test2')
                    ),
                    'Test2'
                )
            )
        )
    )
),
FieldList::create(
    FormAction::create('submit', 'Submit')
)
122
Rudiger

別のフィールドセットを追加して、その属性をid="hidden_field" aria-hidden="true"に設定できます。 cssドキュメントでは、次のことができます。

    #hidden_field{
        display:none;
        height:0;
        width:0;
        margin:0;
        padding:0;
        visibility: hidden;
    }

これにより、SilverStripe Frameworkのクエリ動作が非表示になります。私自身のphpフォームでは、誰かが異なるpart-id番号で新しいフォームを何度も送信すると、ランダムな括弧が表示されました。私はこのアプローチを使用して、サイト上のランダムな括弧を非表示にしました。

1
JTS