Передача значений со скрытым 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>
Другие вопросы по тегам