Projet

Général

Profil

Actions

Formulaire de capture

Cette documentation décrit les technologies et techniques employées pour construire le formulaire de captures

Sélection des champs en fonction des choix précédents

Le formulaire de capture commence par une série de choix proposés à l'utilisateur. Chaque réponse conditionne les choix suivants.

Pour plus de fluidité, on reste toujours sur une seule page web et on veut un minimum de clics.

Principe

On fait de l'unobstrusive javascript.

Chaque événement de changement sur un objet de sélection déclenche une requête au serveur pour calculer la liste des choix dans l'élément suivant.

Un élément du HTML a un identifiant (par exemple capture_theme_id option) qui est utilisé par un code javascript pour peupler les choix listés dans cet élément.

Le serveur route cette requête auprès du contrôleur qui déclenche le calcul d'une vue javascript qui sera a

Mise en oeuvre

Les fonctions AJAX sont écrites dans le fichier source:/app/assets/javascripts/captures.js.coffee

Un changement .on 'change' sur un élément déclenche une requête GET au format javascript (.js) avec l'option theme_id positionnée à la valeur sélectionnée.

Dans le controleur de capture source:/app/controllers/captures_controller.rb la fonction update_points permet de donner un retour aux requêtes JS. Cette fonction prépare une liste de points et déclenche la vue liée source:/app/views/captures/update_points.js.coffee

Dans cette vue, le code remplace toutes les options de l'élément select #capture_point_id par les noms des objets que lui a transmis le controlleur.

Responsive : rendu du formulaire pour des supports smartphone/tablette

Mis à jour par Jonathan Schaeffer il y a presque 9 ans · 5 révisions