我有一个包含100多个字段的简单表单。所有这些字段都提交给cffunction
,其中我有运行插入或更新查询的SQL代码。以下是我的代码示例:
var formData = $('#'+frmID).serialize();
$.ajax({
type: 'POST',
url: 'Components/MyFunction.cfc?method=userRecord',
data: formData,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
return true;
}else{
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
这是cffunction:
<cffunction name="userRecord" access="remote" output="true" returnformat="JSON">
<cfargument name="userID" type="string" required="true">
<cfargument name="userFName" type="string" required="true">
<cfargument name="userLName" type="string" required="true">
<cfargument name="userDOB" type="string" required="true">
<cfargument name="userGender" type="string" required="true">
<cfargument name="userAddress" type="string" required="true">
<cfargument name="userCity" type="string" required="true">
.... And there is more field in this form
<cfset fnResults = StructNew()>
//Here is SQL query for insert and update
<cfreturn fnResults>
</cffunction>
有没有一种方法可以使用cfloop并动态收集所有参数,而不是手动创建所有参数?我找不到任何文章或例子。这是一个很好的选择还是手动创建参数是更好的方法?如果有人可以提供帮助,请告诉我。谢谢!
答案 0 :(得分:2)
尝试将数据作为结构传递。
<cffunction name="userRecord" access="remote" output="true" returnformat="JSON">
<cfargument name="formData" type="structure" required="true">
<cfloop collection="#arguments.formData#" item="key">
#key#: #arguments.formData[key]#
</cfloop>
<cfset fnResults = StructNew()>
//Here is SQL query for insert and update
<cfreturn fnResults>
</cffunction>
答案 1 :(得分:1)
将整个表单数据作为结构传递。
var formData = $('#'+frmID).serializeArray();
$.ajax({
type: 'POST',
url: 'Components/MyFunction.cfc?method=userRecord',
data: formData,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
return true;
}else{
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
<cffunction name="userRecord" access="remote" output="true" returnformat="JSON">
<cfargument name="form" type="struct" required="true">
<cfdump var="#arguments.form#">
</cffunction>