開発情報・ナレッジ

投稿者: SPIRERS ナレッジ向上チーム 2024年2月22日 (木)

セレクトフィールドにURLパラメータの値を自動登録させる方法

フォームブロックの自動登録は、認証エリアにログインした人の属性情報やフォームURLのパラメータ値などをフォーム利用者に入力させずにDBに自動登録できる機能です。
会員情報を再入力させずにDB登録したり、キャンペーンフォームの流入元をURLパラメータ値で取得したりするのに使用できます。

ただし、自動登録機能はフィールドタイプによって引用できる値に制限があります。
たとえば、URLパラメータの値をセレクトタイプのフィールドに登録することはできません。
自動登録>値タイプの指定可能条件

この記事では、「プロモーション種別」という名称のセレクトタイプフィールドを例にURLパラメータの値をセレクトタイプのフィールドに自動登録する方法についてご紹介します。
同じ方法で、セレクトタイプ以外のフィールドにも応用することができます。ぜひお試しください。

URLパラメータの設定方法

DBのフィールド例
DBに下記のフィールドを用意します。

表示名 識別名 タイプ フィールドID
プロモーション種別 select セレクト 1(f01)
パラメータ自動登録用(※) pram_text テキスト 2(f02)

※「パラメータ自動登録用」フィールドは、ビジュアル設定の時のみ必要です。ソース設定では不要です。
URLに付与するクエリパラメータ例
URLに付与するクエリパラメータは、今回は下記を想定してご案内します。

キー
promotion 1

フォームブロックを設置したページのURL末尾に「?」を付与して、?以降にパラメータを記入します。

https://(アカウント識別名)-(サイト識別名).spiral-site.com/(ページ識別名)?promotion=1
実際にURLにアクセスした場合は、フォームブロック用のパラメータも自動付与されます。
パラメータの設定方法について詳しくは、下記サポートサイト記事をご確認ください。

パラメータ付与

URLパラメータ値は、悪意の有無に関わらず、URLのコピーミスなどで値が変更されてDB登録される恐れがあります。
改ざんされても影響が少ないフィールドのみに使用するようにご注意ください。

ビジュアル設定の場合

フォームブロックの設定方法がビジュアル設定の場合、フォームブロックの自動登録とDBトリガレコードアクションとを組み合わせて設定します。
手順1:フォームブロックの設定
フォームブロック設定画面の「自動登録」で、パラメータ自動登録用のテキストフィールドに自動登録を設定します。

フィールド 値タイプ
パラメータ自動登録用 引用(任意値) クエリパラメータキー promotion

手順2:DBトリガレコードアクションの設定
DBトリガ>レコードアクションの設定画面で、テキストフィールドの値をセレクトフィールドへ登録する更新トリガを設定します。

レコードアクション設定
表示名 パラメータ値をセレクトフィールドへ登録
アクション先 自DB
操作 更新

処理設定では、処理マッピングに「関数設定」を使用してください。
(処理マッピングの「フィールド値設定」は、基本的に同じフィールドタイプ間のマッピングのみに対応しており、テキストフィールドの値をセレクトフィールドへ登録することができません。)

処理設定
処理名 テキストフィールドの値をセレクトフィールドへ登録
処理タイプ 更新
処理マッピング
アクション先DBフィールド 格納値
プロモーション種別 @{DB識別名}.pram_text
エラー処理 全てエラー終了

ソース設定の場合

フォームブロックの設定方法がソース設定の場合、入力ステップのHTMLソースにセレクトフィールドの input タグを type="hidden" 属性で設定します。
input タグを type="hidden" で設定することで、自動登録の設定をすることなく、クエリパラメータ値と一致するラベルIDの登録ができます。

<sp:input-field name="f01"></sp:input-field>
<input type="hidden" th:name="${fields['f01'].name}" th:value="${getParams['promotion']}">
詳しくは、下記のサポートサイト記事をご参照ください。

パラメータ付与>フォームブロックへのパラメータ設定

なお "hidden" 属性の値は画面上に表示されていませんが、改ざんできてしまう値です。
改ざんされても影響が少ないフィールドのみに使用するようにご注意ください。
解決しない場合はこちら コンテンツに関しての
要望はこちら