Проверка изменений TextField после отправки формы в Coldfusion - PullRequest
1 голос
/ 02 июня 2011

У меня есть код, который отображает записи в базе данных и позволяет редактировать / удалять.

Я пытаюсь найти способ отправки, чтобы увидеть, было ли изменено определенное поле, поэтому, если старые данныеполе не ссылается ни на какие записи базы данных, я могу удалить его.Любые идеи о том, как это сделать?

Чтобы ответить на первый комментарий / Правка: здесь довольно сложно представить код этой проблемы, но я постараюсь найти некоторые фрагменты, которые помогут.

<td>Upload File:</td>
<td>
    <input type="file" name="txtName" size="50" />
</td>
<cfif url.filesid neq "0">
<td>Or Use Server File:</td>
    <td>
    <select name="ddlFilesNames">
        <option value="" selected></option> 
            <cfoutput query="qfiles">
                <option 
                  value="#qfiles.name#" 
                  #iif(qfiles.name eq recEditFiles.fileName,DE("selected"),DE(""))#
                >#qfiles.name#</option>
            </cfoutput>                         
    </select>
    </td>
</cfif>

Это два поля, которые мне нужно проверить, изменились ли они, когда при нажатии кнопки редактирования в выпадающем списке выбора отображается текущий файл сервера, но во время редактирования они могут либо добавить файл втекстовое поле (через опцию просмотра, чтобы загрузить новый файл) или они могут выбрать другой файл из выпадающего списка, а затем нажать кнопку обновления, которая представляет изменения.

Когда нажата кнопка обновления, мне нужнокаким-то образом проверьте, не изменились ли поля вообще.

Я чувствую, что одна из главных проблем заключается в том, что после нажатия кнопки вызывается метод javascript, и до сих пор мне не удавалось выполнить шнуровку Coldfusionв методах javascript каждый раз, когда я пытаюсь сделать это, или наоборот, это нарушает программу.

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Простой способ сравнить, изменились ли поля в форме по сравнению с исходными, - включить исходные данные в скрытое поле формы, а затем на странице действий сравнить значения поля формы и его скрытого аналога и посмотреть, ' мы изменились.

форма:

<input type="text" name="myField" value="#q.myField#" />
<input type="hidden" name="myField_original" value="#q.myField#" />

Действие:

<cfif form.myField NEQ form.myField_original>
  <cfset fieldHasChanged = true />
<cfelse>
  <cfset fieldHasChanged = false />
</cfif>

Если вы согласны с именами полей формы, вам будет легко создать цикл на странице действий для этих сравнений.

0 голосов
/ 02 июня 2011

Некоторый код поможет.Похоже, у вас есть <input type="file" ... />, и вы хотите знать, «удаляет ли пользователь» файл из вводимой записи БД?

Обычно я обращаюсь с этим, показывая текущий файл, связанный с записью, и "удалить "кнопку или значок, который позволяет удалить это изображение.Я также включил кнопку «заменить» или «загрузить новый» или «загрузить другой», которая позволяет пользователю выбрать другой файл для замены текущего файла или добавить файл в запись без файла.

Есливы не делаете что-то подобное, тогда у вас нет возможности узнать, не захотел ли пользователь просто загрузить тот же файл снова (потому что он уже есть, зачем им?) или он намеревался удалить вашу системуэтот файл и его связь с записью базы данных.

...