2010-08-24 2 views
0

У меня есть многоступенчатая форма, которая просит подписчика проверить их данные, прежде чем приступать к процессу продления.Обнаружение, если значения поля формы были изменены

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

Я знаю, что могу сделать это с помощью оператора ==, но мне было интересно, был ли более эффективный способ сделать это?

ответ

2

Вы можете сделать это с помощью (многомерных) массивов. Назовите формы/служебные переменные, затем сравните их при отправке с помощью array_diff, в котором указывается, какие значения были изменены. Поскольку вы сказали, что это многоступенчатая форма, вы можете также собирать ранее представленные значения в переменной $_SESSION.

0

Вы можете сделать это с помощью JavaScript на стороне клиента:

HTML

<input type="text" id="username"> 

Javascript

var input = $('#username'); 
if (input.defaultValue != input.value) { 
    //Do stuff if different 
} else { 
    //Do stuff if equal 
} 
+0

Это может быть обманут (если клиент отключен JS) или было бы тяжело, если форма велика или (как указывал ОП) форма является многоступенчатой. – fabrik

Смежные вопросы