1

基本的に、データベース フィールドに情報を保存しましたが、フォームを介して再度表示したいと考えています。

元のフォームには同じチェックボックスがありますが、常に空です。ユーザーがチェックボックスをオフにすると、値がデータベースに入れられます。

大学院コース:秋?春?夏?grad という名前の列にリストとして格納されます。(女、男、女)

この素敵なフォームを下書きとして保存するオプションがあります。彼らが下書きに戻ってきたら、彼らがすでにチェックした可能性のあるものを表示する必要があります。

  <cfif listContains(#grad#, "F") is not 0>
  <input type="checkbox" name="grad" id="grad" value = "F" checked />
  <cfelse>
  <input type="checkbox" name="grad" id="grad" value = "F"  />
  </cfif>
  <cfif listContains(#grad#, "S") is not 0>
  <input name="grad" type="checkbox" id="grad" value = "S" checked />
  <cfelse>
  <input name="grad" type="checkbox" id="grad" value = "S" />
  </cfif>
  <cfif listContains(#grad#, "M") is not 0>
  <input name="grad" type="checkbox" id="grad" value = "M" checked />
  <cfelse>
  <input name="grad" type="checkbox" id="grad" value = "M" />
  </cfif>

cfform コードでこれを行う簡単な方法はありますか?

ちょっと興味があるんだけど。:)

4

1 に答える 1

3

私は実際には使用しないので、このようにします<cfform>

<cfloop list="F,S,M" index="g">
  <input type="checkbox" name="grad" id="grad_#g#" value="#g#" #CheckedIf(ListFind(grad, g) gt 0)# />
</cfloop>

<!--- ... --->
<cfscript>
  function CheckedIf(expression) {
    if (arguments.expression) return 'checked="checked"';
    return "";
  }
</cfscript>

しかし、ColdFusionのドキュメントには次のように記載されています。

[以降]ColdFusionMX:cfformタグ preserveData属性の動作を変更しました。これがに設定されている場合TrueColdFusionはラジオとチェックボックスの値が、コントロールに投稿された値と一致する場合にのみチェックします。

そう<cfform>です、これであなたを助けることができます。<cfparam name="FORM.xyz" default="foobar">通常のリクエストの「投稿値」をエミュレートするために使用します。

于 2010-11-05T15:36:44.327 に答える