DrupalでCIVCRMモジュールを使用しており、Drupal登録フォーム用に複数のカスタムデータセットを作成しました。
問題は、4つのメンバーシップレベルがあり、各レベルにカスタムデータセットがあるため、他のデータセットを非表示にして、選択したメンバーレベルに関連するデータセットのみを表示する必要があることです。
管理を通じてそれを行う方法はありますか?.
前もって感謝します。
CiviCRMの一部のフォーム(例:コントリビューション/メンバーシップ)には、組織メンバーシップなどの表示/非表示オプションがある場合がありますが、通常、管理インターフェイスを使用して実行することはできません。jQueryを使用してプログラムで実行することをお勧めします。
別のオプションは、 webform および webform_civicrm Drupalモジュールを使用してカスタムフォームを作成することです。最新バージョンのwebform_civicrmを使用すると、次のことが可能になります。ほとんどの投稿/メンバーシップフォームをほぼ書き直します。Webフォームには、条件付きでフィールドを表示/非表示にする方法があります。
それをjQueryの方法で実行したい場合は、それがDrupalフォーム(例:ユーザー登録フォーム)であるか、CiviCRMフォーム(貢献/メンバーシップフォーム)であるかに応じて) Drupalテーマ、またはCiviCRMテンプレートのjavascriptスニペット。
たとえば、それがDrupal形式の場合、sites/example.org/themes/mytheme/js /custom.jsと同等のものに入れることができます。
/**
* Show/hide the appropriate custom fields for a membership level.
*/
Drupal.behaviors.myThemeToggleMembershipFields = {
attach: function (context, settings) {
$('#my_membership_type_input').change(function() {
var v = $(this).val();
if (v == 1) {
$('..fields for type 1..').show();
$('.. other fields..').hide();
}
else if (v == 2) {
// etc.
}
});
}
})(jQuery);