Передача значений со скрытым 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 ответа
Убедитесь, что ваш CFDUMP использует хеш-теги:
<cfdump var="#oldUserName#">
в противном случае он не будет выгружать содержимое переменной.
Во-вторых, вы просите ColdFusion оценить "oldusername", когда у вас еще не было возможности установить oldusername. Используя тег CFINPUT, просто переписываете его в HTML в обычный тег с улучшениями JavaScript и / или Flash. Таким образом, form.oldusername будет доступно только ПОСЛЕ того, как сообщение будет выполнено для следующего шаблона CF / URL-адреса. Я также настоятельно рекомендую вам охватывать (форма, переменные и т. Д.) Ваши переменные, чтобы вещи не пересекались (если вы не очень хорошо знаете порядок поиска области переменных)
Другие предоставили ваш ответ. Мой ответ - просто совет по поводу вашей формы.
Ваши скрытые 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>