我是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>
答案 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()
。