微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Coldfusion:根据表单选择更新表

如何解决Coldfusion:根据表单选择更新表

我有一个表单,允许用户按区域编号将多个记录分配给技术人员。它通过为未完成记录中的每个区域输出一行以及加入的技术人员的选择列表来实现这一点:

<cfoutput query="getAreaList">
    <div class="row">
        <div class="col-xs-4">
        <div class="form-group">
        <label for="hub">DWS Area:</label>
        <input type="text" name="oparea" id="oparea" value="#OpArea#" class="form-control" />
        </div>
        </div>
        <div class="col-xs-4">
        <div class="form-group">
        <label for="sub">Assign to:</label>
        <select id="series" name="sub" class="form-control">
            <cfloop query="getTechAreas">
            <cfif OpArea EQ getAreaList.OpArea>
            <option value="#username#" class="#OpArea#">#displayname#</option>
            </cfif>
            </cfloop>
            </select>
            </div>
            </div>
        </div>  
        </cfoutput>

结果输出如下所示 - 两个数据列表:

form.opArea:区域4,区域5
form.sub: PERSON1,PERSON2

我的目标是更新我的工作表,其中特定 form.OpArea 的每一行都更新为技术人员的姓名 form.sub

如何遍历每个列表并在匹配 opArea 的地方插入正确的技术名称

我尝试遍历插入,但插入的是整个列表,而不是当前评估的列表项。我目前只是想将它插入到一个保存表中来测试我的代码

<cfoutput>
<cfloop list="#form.oparea#" index="i">
<cfquery datasource="cfLKDM" name="insertdata">
    insert into [DWS_General_Dev].[LogSure].[Holding]
    (AreaNo)
    values
    ('#form.oparea#')
</cfquery>

谢谢

解决方法

您正在获取整个列表,因为您仍在循环中引用表单字段 form.oparea。其中包含整个列表。当循环遍历列表时,正如您所做的那样,cfloop 将在每次迭代期间使用列表项的当前值填充 index 变量。

因此,您应该在示例中使用 form.oparea 而不是使用 i。您应该将该索引变量的名称更改为更具描述性。

像你这样的例子:

<cfloop list="#form.oparea#" index="i">
    <cfquery datasource="cfLKDM" name="insertdata">
        insert into [DWS_General_Dev].[LogSure].[Holding]
        (AreaNo)
        values
        ('#i#')
    </cfquery>

最好将索引变量名称更改为更具描述性:

<cfloop list="#form.oparea#" index="thisOPArea">
    <cfquery datasource="cfLKDM" name="insertdata">
        insert into [DWS_General_Dev].[LogSure].[Holding]
        (AreaNo)
        values
        ('#thisOPArea#')
    </cfquery>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。