Answered
How to use a check box - yes/no in a form to update db
Hello;
I am trying to use a checkbox in a form I created. I need to for a yes or no feature. If it's checked, it is yes, if not, no.
I have it in a form that can either add a "user" or update an existing record. Right now it is throwing an error, and it is for the check box code. Here is the code that matters for this and the error:
page userEdit.cfm
<cfparam name="url.RecordID" type="integer" default="0">
<cfparam name="variables.ID" type="integer" default="#url.RecordID#">
<cfparam name="variables.Fname" default="">
<cfparam name="variables.Lname" default="">
<cfparam name="variables.userName" default="">
<cfparam name="variables.password" default="">
<cfparam name="variables.email" default="">
<cfparam name="variables.admin" default="">
<cfif url.RecordID GT 0>
<cfquery name="useRec" datasource="#APPLICATION.dataSource#">
SELECT user.Fname, user.Lname, user.userName, user.password, user.email, user.admin, user.ID
FROM user
WHERE user.ID =<cfqueryparam value="#URL.RecordID#" cfsqltype="cf_sql_integer">
</cfquery>
<cfif useRec.RecordCount EQ 1>
<cfset variables.RecordID = useRec.ID>
<cfset variables.Fname = useRec.Fname>
<cfset variables.Lname = useRec.Lname>
<cfset variables.userName = useRec.userName>
<cfset variables.password = useRec.password>
<cfset variables.email = useRec.email>
<cfset variables.admin = useRec.admin>
</cfif>
</cfif>
<head>
......
<body>
<cfoutput>
<cfform action="action.cfm" method="post">
<cfinput type="hidden" name="ID" value="#variables.ID#">
..... more for feilds here ..........
<cfinput type="checkbox" name="admin" value="#variables.admin#">
... submit buttons here ...
</cfform>
</body>
Action Page:
<cfif isDefined("Form.RecordID")>
<cfquery datasource="#APPLICATION.dataSource#">
UPDATE user
SET user.Fname=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Fname#">,
user.Lname=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Lname#">,
user.userName=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.userName#">,
user.password=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.password#">,
user.email=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.email#">,
user.admin=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.admin#">
WHERE ID =<cfqueryparam value="#form.RecordID#" cfsqlType="CF_SQL_INTEGER">
</cfquery>
<cflocation url="indexUser.cfm?RecordID=#Form.RecordID#" addtoken="no">
<cfelse>
<cfquery result="GetNewRecord" datasource="#APPLICATION.dataSource#" dbtype="ODBC">
INSERT INTO user
(Fname, Mname, Lname, userName, password, email, admin)
VALUES (<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Fname#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Lname#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.userName#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.password#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.email#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.admin#">)
</cfquery>
<cflocation url="indexUser.cfm">
</cfif>
My error message:
Error Executing Database Query. [Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.
The error occurred on line 33.
That is the line where it is supposed to place the checkbox into teh database on the action page.
How do I use a checkbox for this? The checkbox is the admin tab in the db and that is set to a yes/no setting
Thank you.
CFmonger
I am trying to use a checkbox in a form I created. I need to for a yes or no feature. If it's checked, it is yes, if not, no.
I have it in a form that can either add a "user" or update an existing record. Right now it is throwing an error, and it is for the check box code. Here is the code that matters for this and the error:
page userEdit.cfm
<cfparam name="url.RecordID" type="integer" default="0">
<cfparam name="variables.ID" type="integer" default="#url.RecordID#">
<cfparam name="variables.Fname" default="">
<cfparam name="variables.Lname" default="">
<cfparam name="variables.userName" default="">
<cfparam name="variables.password" default="">
<cfparam name="variables.email" default="">
<cfparam name="variables.admin" default="">
<cfif url.RecordID GT 0>
<cfquery name="useRec" datasource="#APPLICATION.dataSource#">
SELECT user.Fname, user.Lname, user.userName, user.password, user.email, user.admin, user.ID
FROM user
WHERE user.ID =<cfqueryparam value="#URL.RecordID#" cfsqltype="cf_sql_integer">
</cfquery>
<cfif useRec.RecordCount EQ 1>
<cfset variables.RecordID = useRec.ID>
<cfset variables.Fname = useRec.Fname>
<cfset variables.Lname = useRec.Lname>
<cfset variables.userName = useRec.userName>
<cfset variables.password = useRec.password>
<cfset variables.email = useRec.email>
<cfset variables.admin = useRec.admin>
</cfif>
</cfif>
<head>
......
<body>
<cfoutput>
<cfform action="action.cfm" method="post">
<cfinput type="hidden" name="ID" value="#variables.ID#">
..... more for feilds here ..........
<cfinput type="checkbox" name="admin" value="#variables.admin#">
... submit buttons here ...
</cfform>
</body>
Action Page:
<cfif isDefined("Form.RecordID")>
<cfquery datasource="#APPLICATION.dataSource#">
UPDATE user
SET user.Fname=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Fname#">,
user.Lname=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Lname#">,
user.userName=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.userName#">,
user.password=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.password#">,
user.email=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.email#">,
user.admin=<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.admin#">
WHERE ID =<cfqueryparam value="#form.RecordID#" cfsqlType="CF_SQL_INTEGER">
</cfquery>
<cflocation url="indexUser.cfm?RecordID=#Form.RecordID#" addtoken="no">
<cfelse>
<cfquery result="GetNewRecord" datasource="#APPLICATION.dataSource#" dbtype="ODBC">
INSERT INTO user
(Fname, Mname, Lname, userName, password, email, admin)
VALUES (<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Fname#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.Lname#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.userName#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.password#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.email#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.admin#">)
</cfquery>
<cflocation url="indexUser.cfm">
</cfif>
My error message:
Error Executing Database Query. [Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.
The error occurred on line 33.
That is the line where it is supposed to place the checkbox into teh database on the action page.
How do I use a checkbox for this? The checkbox is the admin tab in the db and that is set to a yes/no setting
Thank you.
CFmonger
