引数を渡すのに問題があります:
<cfset result = news.updateNews(form.id, form['title'&form.id])>
最後の引数で「要素title2はクラスcoldfusion.filter.FormScope型のJavaオブジェクトで定義されていません」というエラーが発生します。
任意のヒント?それ以外の構文はどうあるべきですか?
引数を渡すのに問題があります:
<cfset result = news.updateNews(form.id, form['title'&form.id])>
最後の引数で「要素title2はクラスcoldfusion.filter.FormScope型のJavaオブジェクトで定義されていません」というエラーが発生します。
任意のヒント?それ以外の構文はどうあるべきですか?
提供される構文は、次のことを想定しています。
そうでない場合は、form.id(この例では「2」)をフォームフィールド名「title」と誤って混合し、フォームに存在すると予想される変数「title2」を作成したことを意味します。スコープ(フォーム送信から)。
フォームに「title2」という名前のフィールドがある場合、コードは機能します。私はそれ自体に投稿するフォームのこの単純なスクリプトでそれを個人的にテストしました:
<cfif isDefined('form.submit')>
<!--- here's your syntax --->
<cfoutput>#form['title'&form.id]#</cfoutput>
</cfif>
<form action="form.cfm" method="post">
<input type="hidden" name="id" value="2" />
<input type="text" name="title2" value="" />
<input type="submit" name="submit" />
</form>
どういうわけか、フォームフィールド「title2」が存在しないようにする可能性のあるエッジ条件を考え出しました。それ以上のコードや説明がなければ、これ以上のことはできません。
変数が存在すると仮定します。
<cfset result = news.updateNews( form.id, evaluate('form.title#form.id#') ) >
それを行う1つの方法です。
'title'&form.I'dの結果である'title'&stuct"form"の"title2"という名前のメンバーを渡します。フォームIDを渡そうとしている場合は、フォーム構造体指定子でラップせずにform.Idを使用してください。'title'という名前のフォーム入力だけを渡そうとしている場合は、form.titleを渡してください。form.idとform.titleの両方を渡そうとしている場合は、それらを別々のパラメーターで渡してください。