2

誰でもこのコードを確認して、何が問題なのか教えてもらえますか? 質問が 2 回表示される理由がわかりません。

これは、質問タイプに基づいて質問を表示するコードです。つまり、質問フォルダーを調べて、一致する質問タイプテンプレートを探し、質問とともに表示します。これはアンケートの質問を表示するコードです。

<cfoutput>
 <cfset step = 0 />
 <form class="form form-horizontal" action="#buildUrl(action='survey.savesurveyresults',querystring='surveyId=#rc.surveyid#')#" method="post">
  <input type="hidden" name="id" value="0">
  <input type="hidden" name="fksurveyid" value="#rc.surveyId#">
  <input type="hidden" name="fkquestionid" value="#rc.questions.id#"> 
  <fieldset> 
   <cfloop query="rc.questions">
    <cfset step ++ />
    <cfset answer = "" />
    <cfmodule template="../question/#rc.questions.template#/display.cfm" step="#step#" question="#rc.questions.question#" template1="#rc.questions.template#"  fkquestionid="#rc.questions.id#" answer="#answer#" required="#rc.questions.required#" result="result#step#"/>
   </cfloop>

   <div class="form-actions">
    <button type="submit" name="submit" class="btn btn-success">Submit answers</button>
   </div>  
  </fieldset>
 </form>
</cfoutput>

これは、質問とその質問タイプ (truefalse または yes または no など) を表示する私の display.cfm です。

<cfparam name="attributes.yesno" default="false">
 <cfoutput>
  <p>#attributes.step#) #attributes.question# <cfif attributes.required EQ 1><strong>*    </strong></cfif></p>
  <div class="answers">
   <cfif attributes.yesno>
    <input type="radio" name="answer" id="answer" value="yes"<cfif attributes.answer is "yes">Checked</cfif>><label for="truefalse">Yes</label><br>
    <input type="radio" name="answer" id="answer" value="no"<cfif attributes.answer is "No">Checked</cfif>><label for="truefalse">No</label>        
   <cfelse>
    <input type="radio" name="answer" id="answer" value="true"<cfif attributes.answer is "true">Checked</cfif>><label for="truefalse">True</label><br>
    <input type="radio" name="answer" id="answer" value="False"<cfif attributes.answer is "False">Checked</cfif>><label for="truefalse">False</label> 
   </cfif>
  </div>
</cfoutput>

質問のレコードを一覧表示するクエリは次のとおりです。

<cfquery name="list">
SELECT
questions.id,
questions.question,
questions.rank,
questions.required,
questiontypes.name as questiontype,
questiontypes.template as template,
surveys.name as surveysname,
surveys.thankyoumsg as thankyoumsg
FROM questions
 INNER JOIN questiontypes ON questions.fkquestiontypeid = questiontypes.id
 INNER JOIN surveys ON questions.fksurveyid = surveys.id
WHERE questions.fksurveyid = <cfqueryparam cfsqltype="cf_sql_bigint" value="#arguments.surveyid#">
</cfquery>
4

3 に答える 3

5

タグを使用するときは、終了タグ<cfmodule>を含めるか、開始タグをそのように閉じると、 ColdFusionがそのタグを 2 回呼び出すことを覚えておく必要があります。</cfmodule><cfmodule ... />

cfmodule のドキュメント ページに記載されているとおり:

cfmodule に終了タグを指定すると、ColdFusion は開始タグと終了タグの両方があるかのようにカスタム タグを呼び出します。詳細については、『ColdFusion アプリケーションの開発』の終了タグの処理を参照してください。

ColdFusion アプリケーションの開発での終了タグの処理

この機能を回避するには、<cfmodule>タグを閉じないでください。

于 2013-02-20T19:02:44.930 に答える
0

わかりました。のように cfmodule タグを閉じる必要はありません<cfmodule />

于 2013-02-20T18:51:43.900 に答える