ColdFusion cfset问题

时间:2013-11-12 01:34:25

标签: coldfusion

我是ColdFusion的新手。任何人都知道为什么这段代码不起作用。当我将表单保留为null时,它不会在数据库中显示100。

<cfif isdefined("FORM.Percentage")>
  <cfset Form.Percentage = #Form.Percentage#>
<cfelse>
  <cfset Form.Percentage = 100>
</cfif>

<cfquery name="percent" datasource ="abc">
Insert into Employees
  (Percentage)
Values
  (#Form.Percentage#)    
</cfquery>

1 个答案:

答案 0 :(得分:14)

如果您有一个文本框,即使它留空也会提交给表单,因此您要检查该字段是否留空。如果是,则可以设置默认值。

您还需要进行一些服务器端验证,该值是一个数字,并使用cfqueryparam将值插入数据库。

<cfif NOT len(trim(FORM.Percentage))>
  <cfset Form.Percentage = 100>
<cfif>

<cfquery result="percent" datasource="abc">
Insert into Employees (Percentage)
Values (
  <cfqueryparam cf_sql_type="cf_sql_integer" value="#Form.Percentage#">
)
</cfquery>

cfquery与INSERT一起使用时,name属性不提供任何内容。如果需要,使用result将允许您查看有关查询的一些数据,但通常不应使用它。

您还可以使用form<cfdump var="#form#">转储到屏幕上以查看其返回的内容。如果您要检查单选按钮或复选框是否存在密钥,则可以使用structKeyExists(form,'myCheckbox')而不是isDefined()