我正在尝试创建一个具有编辑功能的表,但我在尝试将旧值与更新值关联时遇到了问题。我的解决方案是包含一个隐藏的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>
目前我没有得到任何错误,但它似乎没有传入旧值。有什么建议吗?
发布于 2012-07-14 03:16:45
确保您的CFDUMP使用散列标记:
<cfdump var="#oldUserName#"> 否则,它不会转储变量的内容。
其次,当ColdFusion还没有机会为您设置oldusername时,您是在请求它评估"oldusername“。使用CFINPUT标签,只需通过JavaScript和/或Flash增强功能将其重写为常规标签即可。因此,只有在对下一个CF模板/url执行post之后,form.oldusername才可用。我还强烈建议您将(form。,variables。等等...)您的变量,这样就不会出现交叉(除非您仔细了解变量范围的搜索顺序)
发布于 2012-07-14 03:34:46
其他人已经提供了你的答案。我的回答只是关于你的表单的建议。
隐藏的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>https://stackoverflow.com/questions/11476753
复制相似问题