[Modele] simuler une deuxième table dans un champ caché avec Javascript

[Modele] simuler une deuxième table dans un champ caché avec Javascript

par Luc Stavaux,
Nombre de réponses : 0

Bonjour à tous,

En déposant des propositions de communication  pour le MoodleMoot FR 2019, la partie du formulaire avec les 3 auteurs m'a rappelé un problème que j'avais déjà rencontré dans un projet au sein de mon université : il n'est pas possible d'utiliser deux tables dans l'activité "base de données" de Moodle.

Prenons un exemple : je veux collecter des propositions de communication : je crée des champs "titre", "abstract" et "nom auteur", mais si j'ignore le nombre d'auteurs, je dois créer plusieurs champs "nom auteur" et certains seront vides alors que parfois, il en aurait fallu plus... Voici ma piste de solution : avec une seconde table, il devient possible d'ajouter une ligne par auteur et on peut ajouter autant d'auteurs que l'on souhaite.

Grâce à 3 fonctions javascript, je simule cette deuxième table dans un champ (zone de texte) que je cache. D'autres champs (nom, prénom...) me permettent d'alimenter ce champ caché. Les lignes sont séparées par "|||" et les champs par "@@@". Les fonctions se chargent de lire, écrire et effacer ce champ caché qui simule la seconde table.

J'ai pas mal tâtonné pour y parvenir et la lecture de posts tel que celui-ci m'a grandement aidé. J'ai donc décidé de partager mes investigations. J'ai essayé de commenter mon code un maximum.

J'attire votre attention sur le fait que ma démarche est purement expérimentale, je vous invite à essayer ce modèle sur une plateforme de test ! N'hésitez pas à commenter et à modifier (ou "à descendre" ma démarche mais en m'expliquant pourquoi, je ne suis pas un développeur mais je suis très curieux clin d’œil ).

Dans ce modèle, il faut utiliser l'éditeur ATTO (je pense que cela ne fonctionne pas avec TinyMCE, à creuser mais je crois que cela vient de certaines balises générées dans le html...). Enfin, depuis ma participation à l'atelier "bioutifuler sa base de données avec Bootstrap" en 2018, j'ai beaucoup de mal à me passer de Bootstrap clin d’œil , ma mise en page fait donc appel à BootStrap. (Encore un grand merci aux Moodleurs qui ont animé cet atelier).

Enfin, je vais proposer une petite communication "bout de code" pour ce MoodleMoot FR 2019. Si cette dernière est acceptée, je me ferai un plaisir de vous y rencontrer.

Luc.

Moyenne des évaluations Utile (2)