フォーム内に変数を手動で設定しようとしています。これは、変数にhtmlが含まれており、タグのvalue属性に配置すると、表示でエラーが発生するためです。現在、その属性にhtmlが含まれているかどうかを確認しています。含まれている場合、フィールドは空です。
フォームの以前のエントリにhtmlが含まれている場合は、変数を古い値として設定できるようにしたいと思います。これにより、ユーザーは、編集するORMオブジェクトをロードするたびにそのフィールドに入力する必要がなくなります。
スニペットは次のとおりです。
<cfif ("#dataobject.getField()#" NEQ "" AND Left(dataobject.getField(), 1) EQ "<")>
<cfscript>
temp = dataobject.getField();
temp2=temp;
temp2 = Insert("---", temp2, 0);
temp2 = Insert("<!", temp2, 0);
temp2 = Insert("--->", temp2, Len(temp2));
dataobject.setField(temp2);
</cfscript>
<label for="name">
Field:
</label>
<input type="text" name="Field" value="">
<button id="savefield" name="savefield">Save</button>
<cfif form.Field EQ ""><cfset form.Field = temp></cfif>
<cfscript>
dataobject.setField(temp);
</cfscript>
<cfelse>
<label for="name">
Field:
</label>
<input type="text" name="Field" <cfif ("#dataobject.getField()#" NEQ "")>value="#dataobject.getField()#"</cfif>>
<button id="savefield" name="savefield">Save</button>
</cfif>
私が使おうとしていたコード:
<cfif form.Field EQ ""><cfset form.Field = temp></cfif>
Coldfusionは、FORM変数が未定義であることを示すエラーをスローします(これは私を驚かせません)。「保存フィールド」ボタンはjavascriptを呼び出し、ウィンドウを開いてユーザーが値を設定できるようにしてから閉じます。代わりにコードをそこに置く必要がありますか?
-文字列をコメントに変換する挿入は、機能しなかった回避策の初期の試みでした:/