使用隐藏的CFInput传递值

时间:2012-07-13 19:02:29

标签: coldfusion cfinput

我正在尝试创建一个具有编辑功能的表,并且在尝试将旧值与更新的值相关联时遇到了问题。我的解决方案是包含一个隐藏的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>

目前我没有收到任何错误,但它似乎没有传递旧值。有什么提示吗?

2 个答案:

答案 0 :(得分:3)

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

您隐藏的cfinput不应该在表格中。表格用于显示的项目。您可以更好地将隐藏的cfinput移动到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>

答案 1 :(得分:2)

确保您的CFDUMP使用哈希标记:

<cfdump var="#oldUserName#"> 

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

其次,当你还没有机会为你设置oldusername时,你会要求ColdFusion评估“oldusername”。使用CFINPUT标记,只需将HTML中的内容重写为带有JavaScript和/或Flash增强功能的常规标记。因此,只有在将帖子执行到下一个CF模板/网址后,才能使用form.oldusername。我还高度推荐你的范围(形式。,变量等等)你的变量所以事情不会被克服(除非你仔细了解变量范围搜索顺序)