2010-08-24 4 views
0

J'ai un formulaire en plusieurs étapes qui demande à l'abonné de vérifier ses détails avant de procéder au processus de renouvellement. Ce que je veux faire est de vérifier si le formulaire a été modifié à partir de ses valeurs préremplies (extraites d'un Web Service) et ensuite l'écrire dans ma propre base de données locale MySQL. Cela ne devrait arriver que si les valeurs ont été modifiées par rapport à l'original.Détection si les valeurs du champ de formulaire ont été modifiées

Je sais que je peux le faire en utilisant l'opérateur == mais je me demandais s'il y avait un moyen plus efficace de le faire?

Répondre

2

Vous pouvez le faire avec des tableaux (multidimensionnels). Nommez soigneusement les variables de formulaire/service puis comparez-les lors de la soumission avec array_diff qui vous indique quelles valeurs ont été modifiées. Étant donné que vous avez indiqué qu'il s'agit d'un formulaire en plusieurs étapes, vous pouvez bien sûr également collecter des valeurs précédemment soumises dans une variable $_SESSION.

0

Vous pouvez le faire avec javascript côté client:

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

Cela peut être dupé (si le client a désactivé JS) ou serait lourd si la forme est grande ou (comme l'OP l'a déclaré) le formulaire est multi-étapes. – fabrik

Questions connexes