0

我是 ColdFusion 的新手。任何人都知道为什么这段代码不起作用。当我将表单保留为空时,它不会在数据库中显示 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>
4

1 回答 1

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>

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

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

于 2013-11-12T01:59:59.657 回答