Coldfusion 定义了冷熔合
我正在尝试检查表单中是否存在数据,如果数据不存在,我想将其分配给O。我如何才能做到这一点Coldfusion 定义了冷熔合,coldfusion,Coldfusion,我正在尝试检查表单中是否存在数据,如果数据不存在,我想将其分配给O。我如何才能做到这一点 <cfif not isDefined("FORM.Age")> cfset FORM.Age = "0" <cfif> cfset FORM.Age=“0” 您就快到了: <cfif not isDefined("FORM.Age")> <cfset Form.Age = 0> </cfif> 通常认为最佳做法是避免定义ISD。这是因为i
<cfif not isDefined("FORM.Age")>
cfset FORM.Age = "0"
<cfif>
cfset FORM.Age=“0”
您就快到了:
<cfif not isDefined("FORM.Age")>
<cfset Form.Age = 0>
</cfif>
通常认为最佳做法是避免定义ISD。这是因为isDefined将搜索所有作用域,直到找到匹配的变量。因此,使用structKeyExists更有效,例如:
<cfif NOT structKeyExists(form, "age")>
<cfset form.age = 0>
</cfif>
另外,实现这一点的另一种方法是使用cfparam,并将0指定为默认值:
<cfparam name="form.age" default="0">
从技术上讲,一旦您将cfset
封装在标签
中,您所拥有的就可以了。假设省略只是一个打字错误,可能是您试图将其与文本字段一起使用吗
提交时文本字段始终存在。该值可能是空字符串,但字段本身仍然存在,因此IsDefined
将始终返回true。如果是这种情况,则需要检查字段长度或值。然后,根据您的标准,如果它是空的,则执行某些操作。例如:
<!--- value is an empty string --->
<cfif NOT len(FORM.age)>
do something
</cfif>
... OR
<!--- value is an empty string or white space only --->
<cfif NOT len(trim(FORM.age))>
do something
</cfif>
... OR
<!--- convert non-numeric values to zero (0) --->
<cfset FORM.Age = val(FORM.Age)>
做点什么
... 或
做点什么
... 或
实际上有两件事需要确保。首先,通过提交正确的表单来确保到达此页面。接下来,确保form.age变量有一个数值。以下是您可能希望如何编写此代码的示例:
<cfif StructKeyExists(form, "age") and cgi.http_referrer is what it should be>
<cfif IsNumeric(form.age) and form.age gt 0>
<cfset AgeSubmitted = int(form.age)>
<cfelse>
<cfset AgeSubmitted = 0>
</cfif>
...more code to process form
<cfelse>
...code for when page was not arrived at properly
</cfif>
…更多用于处理表单的代码
…页面未正确到达时的代码
不是所有的作用域,但它在处理时会搜索其中的大部分。在某些情况下,这可能导致意外结果。一般来说,structKeyExists更好,因为它更精确。从技术上讲,只要将cfset包含在标记中,您就可以使用它。假设省略只是一个打字错误,那么您是否正试图将其与文本字段一起使用?文本字段始终存在。该值可能是空字符串,但字段本身仍然存在,因此IsDefined
将始终返回true。如果是这种情况,则需要检查字段长度或值。然后,根据您的标准,如果它是空的,请执行某些操作。@Leigh。。。你应该把这当作一个“答案”。