Dynamic Coldfusion-更新动态表单字段
提前谢谢你的帮助 我的应用程序允许用户创建动态问题,其中有n个与问题相关的动态答案 允许用户构建这些内容的页面已经完成,并且可以完美地创建这些内容 我一直在寻找建立更新能力的最有效方法。通常在更新过程中,我会删除字段/关系并重建它们。在这个应用程序中,这不是一个选项,因为一旦输入了答案,我就需要保留它以供报告之用 因此,在更新过程中,我需要识别哪些答案是新的,并插入这些答案,同时根本不更新旧的答案Dynamic Coldfusion-更新动态表单字段,dynamic,coldfusion,Dynamic,Coldfusion,提前谢谢你的帮助 我的应用程序允许用户创建动态问题,其中有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#
请记住,处理过程可以有多种方式。。。这是一个概念证明