Modifiée par : Valentin Deniaud

Utiliser l’autocomplétion (pour un champ liste)

L'aide à la saisie (autocomplétion) permet de voir la liste des éléments sélectionnables s'affiner au fur et à mesure que l'on tape des caractères au clavier. L'aide à la saisie se base sur un référentiel de données.

Référentiel de données

Un webservice externe ou une source de données interne peuvent servir de référentiel de données :

Voir :

<><p>Nous utiliserons ici un fichier tableur comme r&eacute;f&eacute;rentiel de donn&eacute;es (au format ODS - OpenDocument Spreadsheet). Pour une description compl&egrave;te de la cr&eacute;ation du r&eacute;f&eacute;rentiel de donn&eacute;s par fichier tableur, se r&eacute;f&eacute;rer &agrave; <a href="https://doc-publik.entrouvert.com/admin-fonctionnel/parametrage-avance/source-de-donnees-csv/">ce document</a> .</p> <p>Pour l&#39;exercice, nous utiliserons un&nbsp;fichier ods structur&eacute; comme suit&nbsp;:</p> <table border="1"> <tbody> <tr> <th>Identifiant</th> <th>Rue</th> <th>Code Postal</th> <th>Commune</th> </tr> <tr> <td>1</td> <td>Rue de Lut&egrave;ce</td> <td>75001</td> <td>Paris</td> </tr> <tr> <td>2</td> <td>Rue Nationale</td> <td>75013</td> <td>Paris</td> </tr> <tr> <td>3</td> <td>Rue d&#39;Avron</td> <td>75020</td> <td>Paris</td> </tr> </tbody> </table> <h3>Cr&eacute;ation du connecteur tableur</h3> <p>Nous devons d&#39;abord cr&eacute;er un connecteur avec ce fichier tableur.</p> <p>Se rendre dans le menu <em>Services web</em>, puis cliquer sur <em>Ajouter un connecteur</em> (en haut &agrave; droite). Dans la ligne <em>Sources des donn&eacute;es</em>, cliquer sur <em>Fichier tableur, </em>puis renseigner&nbsp;:</p> <ul> <li><strong>Ma ville</strong>&nbsp; dans le champ <em>titre</em>.</li> <li><strong>id, text, code_postal, ville</strong> dans le champ <em>Noms des cl&eacute;s pour les colonnes</em></li> <li>cocher la case <em>Passer la premi&egrave;re ligne </em>(puisqu&#39;elle contient des titres de colonne et pas des donn&eacute;es)</li> <li>dans<em> fichier tableur, </em>s&eacute;lectionnez votre fichier</li> </ul> <p>Une fois le connecteur cr&eacute;&eacute;, vous disposez d&eacute;sormais d&#39;un webservice d&#39;acc&egrave;s aux donn&eacute;es, dont l&#39;adresse est <strong>{{passerelle_url}}csvdatasource/ma-ville/data</strong></p> <h3>Cr&eacute;ation de la source la donn&eacute;e associ&eacute;e</h3> <p>Dans la fabrique de formulaires utiliser le lien <em>Sources de donn&eacute;es</em> en haut &agrave; droite. Cliquez sur <em>Nouvelle source de donn&eacute;es</em>, toujours dans la colonne de droite, puis renseigner&nbsp;:</p> <ul> <li><strong>Ma ville</strong>&nbsp; dans le champ <em>titre</em>.</li> <li>Au niveau de <em>Source de donn&eacute;es</em>, choisir le type &laquo;URL du JSON&raquo;, puis renseigner tel quel l&#39;url du point d&#39;acc&egrave;s aux donn&eacute;es&nbsp;: <strong>{{passerelle_url}}csvdatasource/ma-ville/data</strong></li> </ul> <p>Si le r&eacute;f&eacute;rentiel utilis&eacute; &eacute;tait un webservice externe, on renseignerait son URL dans ce champ&nbsp; <em>Source de donn&eacute;es (</em>le webservice externe serait utilis&eacute; &agrave; la place du webservice du connecteur tableur).</p> >

Création du champ de formulaire

Supposons que notre formulaire appelle un champ « Adresse » associé à un référenciel nommé « Ma Ville » : 

L'aide à la saisie se paramètre sur un champ de type liste et liste à choix multiple.

Dans la fabrique de formulaire, sur le formulaire de votre choix, créer un champ de type liste, puis renseigner:

  • adressedans le champ identifiant
  • autocomplétion dans le champ mode d'affichage
  • sélectionner Ma Ville dans le champ source de données

Essayez maintenant de remplir une demande correspondant à ce formulaire, vous constaterez que l'aide à la saisie fonctionne sur le champ adresse.

<><p>On notera que seule l&#39;information pr&eacute;sente dans la deuxi&egrave;me colonne du r&eacute;f&eacute;rentiel de donn&eacute;es est vue par l&#39;usager lorsqu&#39;il remplit le champ <em>adresse</em>. En effet seule&nbsp;la colonne qui correspond &agrave; la cl&eacute; &laquo; text &raquo; dans notre&nbsp;connecteur est affich&eacute;e.</p> >

Exploitation des données

Supposons qu'un usager ait rempli ce formulaire, et qu'il ait choisi la première l'entrée suivante dans le référentiel : 

1 Rue de Lutèce 75001 Paris

Voici les variables qui seront associées à cette demande :

  • form_var_adresse qui prendra la valeur Rue de Lutèce  
  • form_var_adresse_raw qui prendra la valeur 1
  • form_var_adresse_code_postal qui prendra la valeur75001
  • form_var_adresse_ville qui prendra la valeurParis

Dans cette convention de nommage des variables, adresse vient de l'identifiant du champ liste. Une fois qu'un champ permettant de récupérer la liste existe (le champ dont l'identifiant est form_var_adresse ici), les autres colonnes peuvent donc être récupérée en ajoutant _clé_de_la_colonne, par exemple form_var_adresse_ville.