1つの送信ボタン。私は複数を使用する可能性がある場合を予測できましたが、一般的な場合は1つだけです。(これは私にはWebページの質問のように見えるので、その仮定で答えていることに注意してください。)
追跡の変更を処理できる3つの方法が思い浮かびます。
JavaScript:非表示フィールドを更新するコントロールにonChange()関数を配置します。そのhiddenに値がある場合は、関連するレコードを更新します。ブラウザにJSが必要であり、更新するフィールドは通知されず、レコードのみが通知されます。
多くのフォームフィールド:各コントロールで非表示のフィールドを配置し、戻ってきたときにすべてを比較します。これは醜いですが、(レコードだけでなく)更新するフィールドを知ることができます。また、誰かが開始した変更を元に戻したかどうかを知ることもできます。
セッション:元の値をセッション変数に配置し、値が戻ってきたときに比較を行うことができます。これは、多くの非表示フィールドよりも少しエレガントであり、投稿されたデータで遊んでいる人々にはあまり開かれていません(非表示フィールドであっても、戻ってくるものを信頼してはいけないため)。ブラウザにCookieが必要であり、サーバーテクノロジにセッションが必要です。