0

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>
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する場合、name 属性は何も提供しません。を使用resultすると、必要に応じてクエリに関するデータを表示できますが、通常は使用しないでください。

formを使用して画面にダンプし、<cfdump var="#form#">返された内容を確認することもできます。ラジオボタンまたはチェックボックスのキーが存在することを確認したい場合は、を使用するstructKeyExists(form,'myCheckbox')代わりに使用できますisDefined()

于 2013-11-12T01:59:59.657 に答える