1

我正在尝试制作具有编辑功能的表格,但在尝试将旧值与更新值关联时遇到了问题。我的解决方案是包含一个隐藏的 CFInput,它将旧值与要更新的值一起传递,然后查询在 cfc 中运行。

<cfform name="update" method="post">
<cfoutput query="allusers">
    <tr>
        <td>#username#</td>
        <td>#email#</td>
        <td>#securityID#</td>
        <td><a href="">DELETE</a></td>
    </tr>
        <td><cfinput name="oldUsername" value="#username#" type="hidden"></cfinput><cfinput name="updateUsername" value="New Value"></cfinput></td>
        <td><cfinput name="oldEmail" value="#email#" type="hidden"></cfinput><cfinput name="updateEmail" value="New Value"></cfinput></td>
        <td><cfinput name="oldSecurityID" value="#securityID#" type="hidden"></cfinput><cfinput name="updateSecurityID" value="New Value"></cfinput></td>
        <td><cfinput name="submit" type="submit"></cfinput>
    <tr>
        <cfdump var="oldUsername">
</cfoutput>

目前我没有收到任何错误,但它似乎没有传递旧值。有小费吗?

4

2 回答 2

3

确保您的 CFDUMP 正在使用哈希标签:

<cfdump var="#oldUserName#"> 

否则它不会转储变量的内容。

其次,当 ColdFusion 还没有机会为您设置 oldusername 时,您要求 ColdFusion 评估“oldusername”。使用 CFINPUT 标记,只需将 HTML 中的它重写为具有 JavaScript 和/或 Flash 增强功能的常规标记。所以 form.oldusername 只有在帖子被执行到下一个 CF 模板/url 之后才可用。我还强烈建议您对变量进行范围(形式,变量等......),这样事情就不会越过(除非您仔细了解变量范围搜索顺序)

于 2012-07-13T19:16:44.913 回答
3

其他人已经提供了你的答案。我的回答只是关于你的表格的建议。

您隐藏的 cfinputs 不应该在表格中。表格用于显示的项目。将隐藏的 cfinputs 移动到 cfform 标签下会更好,如下所示:

<cfform name="update" method="post">
// NON DISPLAY STUFF
<cfinput name="oldUsername" value="#username#" type="hidden">
<cfinput name="oldEmail" value="#email#" type="hidden">
<cfinput name="oldSecurityID" value="#securityID#" type="hidden">
// DISPLAY STUFF
<table>
</table>
</cfform>
于 2012-07-13T19:34:46.293 回答