Panos
asked on
cffunction problem
Hello experts.
I need help to add a validation code i had in a validation.cfm file ,in a cffunction now.
My previous validation was:
1) form validation:
<cfset objgetAdd = CreateObject("component", "com.getlanguages").init(d sn = "#request.dsn#")>
<cfset getlanguages = objgetAdd.fgetlanguages(as cdesc = "desc",languages_active =1)>
<!--- Check if all languages text exists --->
<cfloop query="getlanguages">
<cfparam name="form.newcategory#lan guages_id# " default="">
<cfset thisNewCategory = form["NewCategory" & languages_id]>
<cfif len(trim(thisNewCategory)) is 0 AND languages_active EQ 1>
<span class="errormessage">error :</span> Required field.<br>
<cfabort>
</cfif>
</cfloop>
..........
My new code now is:
cfm page
<cfset objcategories = CreateObject("component", "admin.com.categories").in it(dsn = "#request.dsn#")>
<cfif isdefined("form.action") AND form.action EQ "Add" >
<cfset qryinsert = objcategories.fvalidateand insertcate gory(struc tform="#fo rm#")>
</cfif>
function.....
<cffunction name="fvalidateandinsertca tegory" access="public" returntype="any">
<cfargument name="structform" type="struct">
<cfset var totalerrors = 0 />
<cfset var errorlist = ''>
<cfset getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<!--- Check if all languages text exists --->
<cfloop query="getlanguages">
<!--- <cfargument name="arguments.newcategor y#language s_id#" default=""> --->
<cfset thisNewCategory = arguments["NewCategory" & languages_id]>
<cfif len(trim(thisNewCategory)) is 0 AND languages_active EQ 1>
<cfset var totalerrors = totalerrors + 1>
<cfset var errorlist = ListAppend(errorlist,' required fields!','|') />
</cfif>
</cfloop>
<cfset resultstruct = structnew()/>
<cfset resultstruct.totalerrors = totalerrors />
<cfset resultstruct.errorlist = errorlist />
<cfif totalerrors GT 0 >
<cfset resultstruct.success = "no" />
<cfelse>
</cfif>
<cfreturn resultstruct>
</cffunction>
Any help?
I need help to add a validation code i had in a validation.cfm file ,in a cffunction now.
My previous validation was:
1) form validation:
<cfset objgetAdd = CreateObject("component", "com.getlanguages").init(d
<cfset getlanguages = objgetAdd.fgetlanguages(as
<!--- Check if all languages text exists --->
<cfloop query="getlanguages">
<cfparam name="form.newcategory#lan
<cfset thisNewCategory = form["NewCategory" & languages_id]>
<cfif len(trim(thisNewCategory))
<span class="errormessage">error
<cfabort>
</cfif>
</cfloop>
..........
My new code now is:
cfm page
<cfset objcategories = CreateObject("component", "admin.com.categories").in
<cfif isdefined("form.action") AND form.action EQ "Add" >
<cfset qryinsert = objcategories.fvalidateand
</cfif>
function.....
<cffunction name="fvalidateandinsertca
<cfargument name="structform" type="struct">
<cfset var totalerrors = 0 />
<cfset var errorlist = ''>
<cfset getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<!--- Check if all languages text exists --->
<cfloop query="getlanguages">
<!--- <cfargument name="arguments.newcategor
<cfset thisNewCategory = arguments["NewCategory" & languages_id]>
<cfif len(trim(thisNewCategory))
<cfset var totalerrors = totalerrors + 1>
<cfset var errorlist = ListAppend(errorlist,' required fields!','|') />
</cfif>
</cfloop>
<cfset resultstruct = structnew()/>
<cfset resultstruct.totalerrors = totalerrors />
<cfset resultstruct.errorlist = errorlist />
<cfif totalerrors GT 0 >
<cfset resultstruct.success = "no" />
<cfelse>
</cfif>
<cfreturn resultstruct>
</cffunction>
Any help?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you
regards
panos
regards
panos
if you are going to break, then you don't need to count errors, making your code a little simplier..
If you must return a structure...
<cffunction name="fvalidateCategory" access="public" returntype="any">
<cfargument name="p_formStructure" type="struct">
<cfset var formStructure = arguments.p_formStructure>
<cfset var fieldName = "">
<cfset var getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<cfset var resultStruct = structnew()>
<cfset resultStruct.success = "yes">
<cfset resultStruct.totalerrors = "0">
<cfset resultStruct.errorlist = "">
<cfloop query="getlanguages">
<cfset fieldName = "NewCategory" & getlanguages.languages_id>
<cfif NOT structKeyExists(formStruct ure,fieldN ame)
or len(trim(formStructure[fie ldName])) eq 0
or val(getlanguages.languages _active) eq 0>
<cfset resultStruct.success = "no">
<cfset resultStruct.totalerrors = "1">
<cfset resultStruct.errorlist = "All fields are required">
<cfbreak>
</cfif>
</cfloop>
<cfreturn resultStruct>
</cffunction>
Or if you can just return a message...
<cffunction name="fvalidateCategory" access="public" returntype="any">
<cfargument name="p_formStructure" type="struct">
<cfset var formStructure = arguments.p_formStructure>
<cfset var fieldName = "">
<cfset var getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<cfset var message = "All fields are required">
<cfloop query="getlanguages">
<cfset fieldName = "NewCategory" & getlanguages.languages_id>
<cfif NOT structKeyExists(formStruct ure,fieldN ame)
or len(trim(formStructure[fie ldName])) eq 0
or val(getlanguages.languages _active) eq 0>
<cfreturn message>
</cfif>
</cfloop>
<cfreturn "">
</cffunction>
But as an alternative, you could return the fields that failed, in case you want to highlight them or list them..
<cfset var errorlist = ListAppend(errorlist,field Name)> <!---- return list of fields ---->
If you must return a structure...
<cffunction name="fvalidateCategory" access="public" returntype="any">
<cfargument name="p_formStructure" type="struct">
<cfset var formStructure = arguments.p_formStructure>
<cfset var fieldName = "">
<cfset var getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<cfset var resultStruct = structnew()>
<cfset resultStruct.success = "yes">
<cfset resultStruct.totalerrors = "0">
<cfset resultStruct.errorlist = "">
<cfloop query="getlanguages">
<cfset fieldName = "NewCategory" & getlanguages.languages_id>
<cfif NOT structKeyExists(formStruct
or len(trim(formStructure[fie
or val(getlanguages.languages
<cfset resultStruct.success = "no">
<cfset resultStruct.totalerrors = "1">
<cfset resultStruct.errorlist = "All fields are required">
<cfbreak>
</cfif>
</cfloop>
<cfreturn resultStruct>
</cffunction>
Or if you can just return a message...
<cffunction name="fvalidateCategory" access="public" returntype="any">
<cfargument name="p_formStructure" type="struct">
<cfset var formStructure = arguments.p_formStructure>
<cfset var fieldName = "">
<cfset var getlanguages = fgetlanguages(ascdesc = "desc",languages_active =1)>
<cfset var message = "All fields are required">
<cfloop query="getlanguages">
<cfset fieldName = "NewCategory" & getlanguages.languages_id>
<cfif NOT structKeyExists(formStruct
or len(trim(formStructure[fie
or val(getlanguages.languages
<cfreturn message>
</cfif>
</cfloop>
<cfreturn "">
</cffunction>
But as an alternative, you could return the fields that failed, in case you want to highlight them or list them..
<cfset var errorlist = ListAppend(errorlist,field
ASKER
Hi gdemaria
Thank you for your code.
Thank you for your code.
ASKER
The original message was "All fields are required.".
If there was an error i did stop the cfloop with a cfabort.
I can do the same here with a cfbreak inside the loop.
Thank you for your help.