Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 定义了冷熔合_Coldfusion - Fatal编程技术网

Coldfusion 定义了冷熔合

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

我正在尝试检查表单中是否存在数据,如果数据不存在,我想将其分配给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。这是因为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。。。你应该把这当作一个“答案”。