以下の問題は、私が解決していないパズルですが、対処する方法を見つけました。私は最終的にxref2.cfmを分割し、一度に1行ずつまとめて戻しました。私がそれをやろうとしたら、フォームの範囲が働き始めました。コード内で変更されたものはありません。それは謎のままです。Luceeフォームスコープが認識されない
は、私はこのように一緒にリンクされている4つの手順のセットを持っている:
person1.cfm:これは他のプログラムからの呼び出しとurl引数のbasetab =人に由来します。ここでは変数 "fn"に焦点を当てています。ただしperson1.cfmはまた、しかし、さらに私は
<cfelseif IsDefined('form.fn')>
<cfset fn = form.fn>
<cfset ln = form.ln>
<cfset basetab = form.basetab>
<cfset perloc = form.perloc>
<cfset eof = form.eof>
</cfif>
をperson1.cfmするFNバック渡すフォームの範囲に依存している場合には行、下cfincludeタグでアクセスすることができる
<cfif IsDefined('URL.basetab')>
<cfset basetab = URL.basetab>
<cfset perloc = URL.perloc>
<cfset fn = ''>
<cfset ln = ''>
<cfset eof = "no">
ここではURLスコープもフォームスコープも定義されていないので、変数fnはperson1.cfmを含むプログラムに設定されているはずなので、この時点で定義する必要があります。
... stuff ...
<form action = "person2.cfm" method = "post" ... other stuff>
<input type = "text" name = "fn" value = "#fn#">
.... more stuff....
... submit ...
</form>
person2.cfm:これは、プロセスの次のステップである
... stuff ...
<cfset fn = form.fn>
<cfinclude template = "person1.cfm">
<form action = "xref1.cfm" method = "post" ... stuff >
<cfoutput>
<input type = "hidden" name = "fn" value = "#fn#">
</cfoutput>
.... stuff ....
.....submit ....
</form>
xref1.cfmこれは次のステップ
... stuff ...
<cfset fn = form.fn>
<cfinclude template = "person2.cfm">
<form action = "xref2.cfm" method = "post" ... stuff >
<cfoutput>
<input type = "hidden" name = "fn" value = "#fn#">
</cfoutput>
.... stuff ....
.....submit ....
</form>
xref2.cfm最終工程、何かであります蓄積されたエントリで行われる。
.... stuff ...
<cfset fn = form.fn>
<cfinclude template = "xref1.cfm">
... no form ... other stuff ...
問題は、xref2.cfmでは、変数fnがフォームのスコープで選択されていないことです。チェックアウトすると、xref2.cfmにform.fnがまったく定義されていないことがわかりました。物事がPerson1にカスケードすると、fnは定義されず、入力タグにエラーがスローされます。
form.fnはperson2.cfmとxref1.cfmで定義されています。しかし、xref2.cfmになると消えます。私はなぜなのか理解していない。誰かがxref2.cfmにそのフォームスコープが存在しない理由を私に説明することはできますか?
「私がそれをやろうとしたら、フォームのスコープが機能し始めました」。それで、あなたはそれが今働いていると言っていますか? –
はい、現在動作しています。何も変わっていないので、困惑している。私が持っている唯一のアイデアは、おそらくプログラムファイルのどこかに非印字文字があったということです。 –