仍在学习ColdFusion最佳实践并遇到一个我认为我可以做得更好的实践
我正在运行CF10,并且基本上有一个流程,用户填写20列的电子表格,不需要5列.在不需要的5个中,2个(blah1和blah2)不需要填写数据,如果没有填写数据,则它将被插入为NULL.
最终和单独的过程基本上是读取表中每列的字段,如果它看到2(blah1和blah2列)的NULL,那么它将被设置为默认值,但如果它确实看到任何值,那么它将使用输入的值是什么.
这是我有的:
<cfif Len(blah1)>
<cfset blah1 = "#default1#" />
<cfelse>
<cfset blah1 = "default1" />
</cfif>
<cfif Len(blah2)>
<cfset blah2 = "#default2#" />
<cfelse>
<cfset blah2 = "default2" />
</cfif>
Run Code Online (Sandbox Code Playgroud)
是否使用Len()检查是否在表中的字段中填充了任何数据?
如果您不想在数据库中执行检查,那么是,这len()是最好的方法.如果用户有可能只输入空格,请检查len(trim())
由于您使用的是CF10,您可以使用三元运算符编写代码以简化操作
<cfset blah1 = len(qryName.blah1) ? qryName.default1: 'default1'>
Run Code Online (Sandbox Code Playgroud)
当变量作为变量范围的一部分时,您需要调整变量的范围,因此blah1如果变量来自它,则使用queryName作为前缀.此外,在设置变量时您不需要使用,"##"您只需将某些内容设置为变量即可.不使用三元运算符,您只需要
<cfif Len(qryName.blah1)>
<cfset blah1 = qryName.default1 />
<cfelse>
<cfset blah1 = "default1" />
</cfif>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |