我拥有的是一个表单网站页面,它将使用从表单网站页面输入的信息自动填写所需的表单。我想弄清楚的是,如果 #session.checkout.info.firstname_2#
不存在,如何跳过它而不让表单担心它?
因此,有两个字段,一个用于所有者,另一个用于共同所有者,如果只有一个所有者,则页面不会打开表单,因为它正在寻找要输入为 firstname_2
的内容,但是如果所有者和共同所有者都被输入,则效果很好,因为所有字段都被输入。有谁知道我如何才能让它只关心从第一个表单提交的字段并忽略尚未输入的 session ?
<cfif len(#session.checkout.info.firstname_2#)>
<cfpdfformparam
name="co-owner name"
value="#session.checkout.info.firstname_2# #session.checkout.info.middlename_2# #session.checkout.info.lastname_2#">
</cfif>
最佳答案
您可以使用isDefined
来检查该变量是否不存在。
<cfif isDefined("session.checkout.info.firstname_2")>
<cfpdfformparam
name="co-owner name"
value="#session.checkout.info.firstname_2# #session.checkout.info.middlename_2# #session.checkout.info.lastname_2#">
</cfif>
如果您还需要检查长度,您可以将上述内容与您编写的内容结合起来。
通常,使用 structKeyExists() 是更好的做法,但是当有多个可能不存在的项目时,它可能会很麻烦,即 structKeyExists(session, 'checkout') && structKeyExists( session.checkout, 'info') && structKeyExists(session.checkout.info, 'firstname_2')
关于forms - 如果不适用,则跳过表单的非现有 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27863462/