質問

投稿者:YF2025
登録日:2026年3月2日(月)

入力済み更新フォームを編集不可にしたい

登録→更新フォームで登録フォームの登録完了後、メールで更新フォームのユニークのURLを案内する仕様ですが、更新フォームの登録完了後に該当のユニークURLにアクセスすると入力内容の編集ができてしまいます。これを編集不可にするにはどのようなっ設定を行えばよいでしょうか。

更新日:2026年3月4日(水)
いいね

コメント

  • お問い合わせいただきましてありがとうございます。 >編集不可にするにはどのような設定を行えばよいでしょうか。 上記を実装する方法は大きく分けて2パターンございます。 いずれの方法でも値の有無で切り替える形になりますので、 更新フォームブロックでの更新時に日付やセレクトで「更新済み」フラグを 立てるなどの値の更新を行い判別ができるようにご設定いただいたうえで お試しください。 ①認証エリア自体に入れないように制限する 認証エリアにはログイン制限がかけられるため、更新日時を元に ログイン自体できないようにすることで更新ができないように 設定することが可能です。 ▼認証エリアログイン制限 https://support.spiral-platform.com/function/function-site-manage/9047.html ②Thymeleafでブロック自体を非表示にする。 更新させたくはないが、ログインはさせたい場合、Thymeleafを使って 更新フォームブロックを非表示にし、「更新済みです」のような非表示用の メッセージを設定したフリーコンテンツブロックを代わりに表示することで、 更新不可に設定可能です。 Thymeleafでの値の有り無しでの表示切り替えについては記入例を ご参考ください。 ご確認の程、よろしくお願いいたします。

    Thymeleaf記入例
    <th:block th:if="${siteClient.record[X]}">
        ここに更新フォームブロックを差し込み
    </th:block>
     
    <th:block th:unless="${siteClient.record[X]}">
        ここに更新フォームブロック非表示時のメッセージやフリーコンテンツブロックを設定
    </th:block>
    ※record[X]のXは判別に使う項目のフィールドIDに差し替え
    • いいね
    2026年3月3日(火)
  • YF2025

    ありがとうございます。 ②のパターンですが、更新フォームの最初の質問など、1つに設定しておけばよいものでしょうか。 コードブロックをご確認いただけますと幸いです。

    記入例追記
    <th:block th:if="${siteClient.record['f0133']}">
    
      <!--/* 回答日(新)(B1_0) */-->
      <sp:input-field name="f0133" control="ymdText"></sp:input-field>
      <div class="sp-form-item sp-form-field">
        <div class="sp-form-label">
          <th:block th:text="${fields['f0133'].label}">
            Label
          </th:block>
          <span class="sp-form-required" th:if="${fields['f0133'].required}" th:text="${fields['f0133'].requiredIndicator}">*</span>
          <span class="add-required-mark">*</span>
        </div>
        <div class="sp-form-data">
          <div class="sp-form-datetimes">
            <div class="sp-form-date">
              <input type="date" class="sp-form-control cal" th:name="${fields['f0133'].name}" th:placeholder="${fields['f0133'].placeholder.year}" th:value="${inputs['f0133']}" required>
            </div>
            <!-- <div class="sp-form-date">
              <input type="number" class="sp-form-control" th:name="${fields['f0133:year'].name}" th:placeholder="${fields['f0133'].placeholder.year}" th:value="${inputs['f0133:year']}">
              <span class="sp-form-date-separator">/</span>
              <input type="number" class="sp-form-control" th:name="${fields['f0133:month'].name}" th:placeholder="${fields['f0133'].placeholder.month}" th:value="${inputs['f0133:month']}">
              <span class="sp-form-date-separator">/</span>
              <input type="number" class="sp-form-control" th:name="${fields['f0133:day'].name}" th:placeholder="${fields['f0133'].placeholder.day}" th:value="${inputs['f0133:day']}">
            </div> -->
          </div>
          <span class="sp-form-noted" th:if="${fields['f0133'].help != null}" th:text="${fields['f0133'].help}">Help text</span>
          <span class="sp-form-error" th:if="${errors['f0133'] != null}" th:text="${errors['f0133'].message}">Error message</span>
        </div>
      </div>
    </th:block>
    
    <th:block th:unless="${siteClient.record['f0133']}">
        このアンケートは回答済みです。
    </th:block>
    • いいね
    2026年3月3日(火)
  • ご連絡いただきましてありがとうございます。 ②の方法につきましては、【更新フォームブロックを設置しているページ】をソース設定にして、 ブロックごとThymeleafの表示切替を行うものとなります。 回答日の有無により、Thymelafの表示切替設定につきましては、下記となります。 1. 更新された際に、今日の日付をDBに登録する 更新フォームから更新されたときに、当日の日付を登録する方法は、 DBトリガのレコードアクションが必要となります。 DBの更新トリガに下記を設定ください。 ▼設定 経路条件:フォーム 処理タイプ:更新 処理マッピング:回答日 = NOW() ※処理マッピングは、関数設定にする必要がございます。 DBトリガの設定につきましては、下記をご参照ください。 ▼DBトリガのレコードアクション https://support.spiral-platform.com/function/function-app-manage/6891.html 2. Thymelafに、回答日の値がある場合に表示切替をする 更新フォームを設置しているページにをソース設定にして、 th:ifを用いて表示切替を行います。 Thymeleafの表示切替につきましては、コードブロックに記載しますので、ご確認いただけますと幸いです。 何卒、よろしくお願いいたします。

    回答日の値がある場合に表示切替をする
    <!-- 更新フォームを設置するページを、ソース設定に変更のうえbodyに設定ください。 -->
    <!-- 回答日のフィールドIDが【133】の場合の記載となります -->
    
    <!-- 回答日に値があるとき -->
    <th:block th:unless="${siteClient.record[133]}">
     <!-- 【xxxxx】部分は、更新フォームブロックのフォームIDに差替えください -->
     <sp:block name="ufb0xxxxx"></sp:block>
    </th:block>
    
    <!-- 回答日に値がないとき --> 
    <th:block th:if="${siteClient.record[133]}">
        ここに更新フォームブロック非表示時のメッセージやフリーコンテンツブロックを設定
    </th:block>
    • いいね
    2026年3月3日(火)
  • YF2025

    ありがとうございます。 コードブロック確認しまして、いくつか疑問点があり、コードブロックの内容に追記しました。

    回答日の値がある場合に表示切替をする 追記
    <!-- 更新フォームを設置するページを、ソース設定に変更のうえbodyに設定ください。 -->
    <!-- 回答日のフィールドIDが【133】の場合の記載となります -->
    
    <!-- 回答日に値があるとき -->→「値がない時」ではないでしょうか。
    <th:block th:unless="${siteClient.record[133]}">
     <!-- 【xxxxx】部分は、更新フォームブロックのフォームIDに差替えください -->→添付画像のID部分でよいでしょうか。
     <sp:block name="ufb0xxxxx"></sp:block>
    </th:block>
    
    <!-- 回答日に値がないとき --> →「値がある時」ではないでしょうか
    <th:block th:if="${siteClient.record[133]}">
        ここに更新フォームブロック非表示時のメッセージやフリーコンテンツブロックを設定
    </th:block>
    • いいね
    2026年3月3日(火)
  • ご確認ありがとうございます。 また、記載のコメントと表示条件が逆になっており大変申し訳ございません。 ご記載いただいた通り、「th:unless」のほうが値がないときで、「th:if」のほうが値があるときになります。 また、更新ブロックを差し込む「ufb0xxxxx」は画像に記載されたIDで間違いございません。 お手数をおかけしますがご確認ください。

    • いいね
    2026年3月4日(水)
あなたもログインして、
回答してみませんか?
質問がまとまらない方へ チャットコミュニティで気軽に聞いてみよう! 疑問や課題が整理できていなくても問題ありません。SPIRAL®で解決できる範囲がまだわからなくても質問できます。「ここで聞くと場違いかな?」というお悩みでも歓迎します。
  • Discordで聞く
  • Slackで聞く