juin
2010
En regardant ce screencast je me suis rappelé de précédents essais de formulaire à validation « automatique » côté client.
L’idée était, sur le papier, très sexy :
- Conception d’une classe Javascript de vérification réellement réutilisable, sans retoucher le code pour chaque formulaire.
- Uniformisation du contrôle client et serveur : si les spécifications du formulaire change, il suffit de modifier notre Zend_Form et tout le reste suis.
Seulement voilà, le projet était à petit budget, et si le volume d’utilisateur était faiblard, le mutualisé l’hébergeant l’était plus encore : s’ensuivait des freeze à chaque validation de formulaire, qui m’a complètement freiné dans l’utilisation sur le onblur des éléments au lieu du submit du form, ce qui faisait perdre une grosse partie de la réactivité (la validation client-side attendait sagement qu’on valide le formulaire pour se faire, ce qui était d’un intérêt discutable…).
Conclusion : c’était un bonheur à programmer, et une horreur à utiliser.
Depuis les besoins ont fait que je me suis « contenté » de formulaire à l’ancienne, avec une validation server-side only. Ayant eut beaucoup d’application métier à développer ça n’a pas choqué grand monde : les utilisateurs étaient contents, c’était carré, ça fonctionnait, c’était fluide. Mais il faut l’avouer, ça n’était pas très sexy.
Ce screencast a fait germer l’idée de refaire un essai, plus ambitieux, plus carré, mais tout aussi évolutif et maintenable.
Mon objectif ? Trouver une façon simple mais robuste de lier les Zend_Form au Form.Validator de Mootools, de façon à offrir un contrôle homogène entre server-side et client-side, sans appel Ajax superflu : on réservera les appels Ajax aux besoins dont le serveur est indispensable, notamment vérifier l’unicité d’une valeur dans une table.
Je réfléchis à un plan d’attaque, et on se tient au courant
Bonjour,
Merci pour ce commentaire, je vais jeter un oeil à comment Dojo est intégré, ça me fera une piste supplémentaire
Il me semblait que cette intégration était assez légère, je l’avais du coup un peu occultée.
Bonjour, je passe par hasard par là.
Pensez a regarder du coté de l’intégration built-in de dojo :
http://framework.zend.com/manual/fr/zend.dojo.form.html#zend.dojo.form.elements.validationTextBox
ps : de mémoire, pas la peine d’aller aussi loin pour une validation client side si dojo est activé.