Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamic Coldfusion-更新动态表单字段_Dynamic_Coldfusion - Fatal编程技术网

Dynamic Coldfusion-更新动态表单字段

Dynamic Coldfusion-更新动态表单字段,dynamic,coldfusion,Dynamic,Coldfusion,提前谢谢你的帮助 我的应用程序允许用户创建动态问题,其中有n个与问题相关的动态答案 允许用户构建这些内容的页面已经完成,并且可以完美地创建这些内容 我一直在寻找建立更新能力的最有效方法。通常在更新过程中,我会删除字段/关系并重建它们。在这个应用程序中,这不是一个选项,因为一旦输入了答案,我就需要保留它以供报告之用 因此,在更新过程中,我需要识别哪些答案是新的,并插入这些答案,同时根本不更新旧的答案 需要一些帮助来思考这个问题,谢谢大家 为了实现类似的效果,我通常在要更新的每个字段旁边都有一个包含

提前谢谢你的帮助

我的应用程序允许用户创建动态问题,其中有n个与问题相关的动态答案

允许用户构建这些内容的页面已经完成,并且可以完美地创建这些内容

我一直在寻找建立更新能力的最有效方法。通常在更新过程中,我会删除字段/关系并重建它们。在这个应用程序中,这不是一个选项,因为一旦输入了答案,我就需要保留它以供报告之用

因此,在更新过程中,我需要识别哪些答案是新的,并插入这些答案,同时根本不更新旧的答案


需要一些帮助来思考这个问题,谢谢大家

为了实现类似的效果,我通常在要更新的每个字段旁边都有一个包含其ID的隐藏字段。如果字段的匹配ID为“0”,则我知道它是一个新项,而不是一个已经存在且需要更新的项。因此,当您在表单结构中循环时,在非零ID上运行更新,并在其余ID上运行INSERT。

为了实现类似的效果,我通常在要更新的每个字段旁边都有一个包含其ID的隐藏字段。如果字段的匹配ID为“0”,然后我知道这是一个新项目,而不是一个已经存在并需要更新的项目。因此,当您在表单结构中循环时,在非零ID上运行更新,在其余ID上运行插入。

我采用了与Dan类似的方法,但将ID包含在字段名中。例如,如果我有三个答案字段,其中一个是新的,那么名称可能是“Answer210”、“Answer211”和“Answer0”

当我处理表单时,我可以在每个字段上循环,获取文本“答案”后的数字,并相应地处理数据。你最后做的事情是这样的:

<cfoutput>
<cfif isDefined("form.FIELDNAMES")>

    <cfloop index="x" list = "#form.fieldnames#">  
        <cfif findNoCase('answer',x) NEQ 0>
            <cfset varInteger = replaceNoCase(x,'Answer','')>
            <cfif varInteger EQ 0>
                Insert Answer text: #form[x]# with ID of #varInteger#<br />
            <cfelse>
                Update Answer text: #form[x]# with ID of #varInteger#<br />
            </cfif>     
        </cfif>  
    </cfloop>

</cfif>
</cfoutput>

插入答案文本:#表单[x]#ID为#varInteger#
更新答案文本:#表单[x]#,ID为#varInteger#

请记住,处理过程可以有多种方式。。。这是一个概念证明。

我采用了与Dan类似的方法,但在字段名本身中包含了ID。例如,如果我有三个答案字段,其中一个是新的,那么名称可能是“Answer210”、“Answer211”和“Answer0”

当我处理表单时,我可以在每个字段上循环,获取文本“答案”后的数字,并相应地处理数据。你最后做的事情是这样的:

<cfoutput>
<cfif isDefined("form.FIELDNAMES")>

    <cfloop index="x" list = "#form.fieldnames#">  
        <cfif findNoCase('answer',x) NEQ 0>
            <cfset varInteger = replaceNoCase(x,'Answer','')>
            <cfif varInteger EQ 0>
                Insert Answer text: #form[x]# with ID of #varInteger#<br />
            <cfelse>
                Update Answer text: #form[x]# with ID of #varInteger#<br />
            </cfif>     
        </cfif>  
    </cfloop>

</cfif>
</cfoutput>

插入答案文本:#表单[x]#ID为#varInteger#
更新答案文本:#表单[x]#,ID为#varInteger#
请记住,处理过程可以有多种方式。。。这是一个概念证明