0

我有一个包含 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);
    });

这是cf函数:

<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 并动态收集所有参数,而不是手动创建所有参数?我找不到任何文章或示例。这是一个不错的选择还是手动创建参数是更好的方法?如果有人可以提供帮助,请告诉我。谢谢!

4

2 回答 2

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>
于 2017-07-10T16:28:35.297 回答
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>
于 2017-07-10T16:28:57.410 回答