如何从 ColdFusion 结构对象中获取值
how to get a value out of a ColdFusion struct object
我正在创建一个 pdf 文档(通过 ColdFusion),并在浏览器中呈现该 pdf。 pdf 表单已经创建,我正在预填和填充字段。
所以我正在做的是从 pdf 中转储变量以用作 cfpdfformparam 中的名称。 (获取变量)然后我正在做的是创建 owner email 是 pdf 中变量的名称,然后我从另一个表单分配会话变量的值。这样他们输入的内容就会在他们需要填写的表格中进行预填。所以真正的名称决定了 pdf 上的位置,值是在其他表单上输入的会话变量。
我遇到的问题是已经创建的变量,其中一些在变量内部有 structs
,所以我不确定如何在(名称部分)中调用它们以便预填充并填充信息。
例如,当 FEID/DL/DMVacct 和 FL reg 在变量中包含一个结构时,我将如何预填充信息?:
像这样?:
<cfpdfformparam
name="FEID/DL/DMVacct##"
value="#session.checkout.info.driverlicense_1#">
<cfpdfform action="read" source="82040y.pdf" result="data" />
<cfdump var="#data#" />
我是 pre-populating pdf 表单字段(通过 ColdFusion 会话变量),然后使用以下标记呈现 pdf:
<cfpdfform source="82040.pdf" action="populate">
<cfpdfformparam name="org" value="">
</cfpdfform>
如有任何帮助,我们将不胜感激!
structName['FEID/DL/DMVacct']['##'] = variable
您需要双 #
来转义它们并生成一个单数 #
您可以像这样访问嵌入在结构中的变量:
<!--- using dot notation --->
<cfif StructKeyExists(myStruct, "myKey")>
<cfoutput> #mystruct.myKey#</cfoutput><br>
</cfif>
<!--- or using access notation --->
<cfif StructKeyExists(myStruct, LastName)>
<cfoutput>#LastName#: #mystruct[LastName]#</cfoutput><br>
</cfif>
您可以使用IsDefined
查看值是否存在:
IsDefined("structure_name.key")>
但是,如果密钥是动态的,或者包含特殊字符,则必须使用StructKeyExists
函数。
NOTE: You must be careful about your variable names in ColdFusion. Some of the names assigned to your struct values would be considered invalid if used as variable names. So if your struct names contain invalid characters, you will need to access them via access-notation in order to retrieve them:
<!--- use access-notation for value names with special chars --->
data["FEID/DL/DMVacct"]["#"]
否则,如果您尝试使用点表示法,您将遇到运行时错误:
<!--- Invalid markup! Don't do this! --->
#data.FEID/DL/DMVacct.##
下面是一些您可以如何访问您的数据的示例:
<!--- Output the value --->
<cfoutput> #data["FEID/DL/DMVacct"]["#"]#</cfoutput><br>
<!--- Storing the value in a variable named 'myVar' --->
<cfset myVar = #data["FEID/DL/DMVacct"]["#"]# />
<cfoutput>#myVar#</cfoutput>
如果您的结构名称遵循 ColdFusion 的 variable naming rules,那么您也可以使用点符号访问您的数据,注意我将值名称 FEID/DL/DMVacct
和 #
更改为有效的变量名称: FEID_DL_DMVacct
和 num
:
<!--- Output the value via dot-notation --->
<cfoutput> #data.FEID_DL_DMVacct.num#</cfoutput><br>
<!--- Storing the value in a variable named 'myVar' --->
<cfset myVar = #data.FEID_DL_DMVacct.num# />
<cfoutput>#myVar#</cfoutput>
希望对您有所帮助!
我正在创建一个 pdf 文档(通过 ColdFusion),并在浏览器中呈现该 pdf。 pdf 表单已经创建,我正在预填和填充字段。
所以我正在做的是从 pdf 中转储变量以用作 cfpdfformparam 中的名称。 (获取变量)然后我正在做的是创建 owner email 是 pdf 中变量的名称,然后我从另一个表单分配会话变量的值。这样他们输入的内容就会在他们需要填写的表格中进行预填。所以真正的名称决定了 pdf 上的位置,值是在其他表单上输入的会话变量。
我遇到的问题是已经创建的变量,其中一些在变量内部有 structs
,所以我不确定如何在(名称部分)中调用它们以便预填充并填充信息。
例如,当 FEID/DL/DMVacct 和 FL reg 在变量中包含一个结构时,我将如何预填充信息?:
像这样?: <cfpdfformparam
name="FEID/DL/DMVacct##"
value="#session.checkout.info.driverlicense_1#">
<cfpdfform action="read" source="82040y.pdf" result="data" />
<cfdump var="#data#" />
我是 pre-populating pdf 表单字段(通过 ColdFusion 会话变量),然后使用以下标记呈现 pdf:
<cfpdfform source="82040.pdf" action="populate">
<cfpdfformparam name="org" value="">
</cfpdfform>
如有任何帮助,我们将不胜感激!
structName['FEID/DL/DMVacct']['##'] = variable
您需要双 #
来转义它们并生成一个单数 #
您可以像这样访问嵌入在结构中的变量:
<!--- using dot notation --->
<cfif StructKeyExists(myStruct, "myKey")>
<cfoutput> #mystruct.myKey#</cfoutput><br>
</cfif>
<!--- or using access notation --->
<cfif StructKeyExists(myStruct, LastName)>
<cfoutput>#LastName#: #mystruct[LastName]#</cfoutput><br>
</cfif>
您可以使用IsDefined
查看值是否存在:
IsDefined("structure_name.key")>
但是,如果密钥是动态的,或者包含特殊字符,则必须使用StructKeyExists
函数。
NOTE: You must be careful about your variable names in ColdFusion. Some of the names assigned to your struct values would be considered invalid if used as variable names. So if your struct names contain invalid characters, you will need to access them via access-notation in order to retrieve them:
<!--- use access-notation for value names with special chars --->
data["FEID/DL/DMVacct"]["#"]
否则,如果您尝试使用点表示法,您将遇到运行时错误:
<!--- Invalid markup! Don't do this! --->
#data.FEID/DL/DMVacct.##
下面是一些您可以如何访问您的数据的示例:
<!--- Output the value --->
<cfoutput> #data["FEID/DL/DMVacct"]["#"]#</cfoutput><br>
<!--- Storing the value in a variable named 'myVar' --->
<cfset myVar = #data["FEID/DL/DMVacct"]["#"]# />
<cfoutput>#myVar#</cfoutput>
如果您的结构名称遵循 ColdFusion 的 variable naming rules,那么您也可以使用点符号访问您的数据,注意我将值名称 FEID/DL/DMVacct
和 #
更改为有效的变量名称: FEID_DL_DMVacct
和 num
:
<!--- Output the value via dot-notation --->
<cfoutput> #data.FEID_DL_DMVacct.num#</cfoutput><br>
<!--- Storing the value in a variable named 'myVar' --->
<cfset myVar = #data.FEID_DL_DMVacct.num# />
<cfoutput>#myVar#</cfoutput>
希望对您有所帮助!