11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je suis en train de développer une petite application web pour une agence d'emploi qui a pour objectif d'informatiser les fiches sur les demandeurs d'emploi (deux tiers sur papier, LOL).

La première étape consiste à saisir les informations concernant le demandeur d'emploi dans un formulaire afin d'ajouter sa fiche dans la base de données.

Pour les informations uniques (comprenez par là le sexe, le nom, etc) ca roule, mais mon problème se pose au niveau des informations multiples comme la formation et les compétences du demandeur d'emploi.

Par défaut, mon formulaire permet de saisir une formation (et une compétence). J'aimerais via l'événement onClick d'un bouton ajouter un élément identique à celui pour saisir une formation afin que l'utilisateur puisse saisir une deuxième formation, puis une troisième si besoin est, etc.

J'ai "bricolé" un je ne sais quoi en JavaScript/jQuery pour manipuler le DOM mais ce n'est pas un franc succès. De plus, je ne sais pas comment récupérer coté serveur l'ensemble des éléments qui auront été créés.

Si une âme charitable pouvait éclairer ma lanterne ce serait so cool. Merci =)

Edit : je développe en HTML5, CSS3, PHP5 (classique et POO). J'ai un niveau moyen en JavaScript et jQuery et débutant en Ajax, mais je suis auto didacte en plus de mes études donc j'approfondirai/apprendrai volontiers un langage si besoin est.
En ce qui concerne les éléments multiples, je place l'id des éléments dans un input hidden. Que j’envoie avec le formulaire de façon classique. Il reste plus qu'à faire un explode (avec le séparateur définit) et de faire l'insert dans la BDD.

Après il y a plein de façon d'ajouter ces éléments dans le hidden. Perso selon le nombre je change de méthode. Si il y en a peu, je les affiche tous et je clic sur l'élément qui change de style pour montrer qu'il est sélectionné (et j'ajoute ou retire l'id du hidden). Si il y en a bcp, je fais une recherche (champ input + auto complete) et je clic sur "ajouter" pour afficher l'élément sur la ligne d'en dessous (et lors du clic, j'ajoute l'id dans le hidden). Dans les 2 cas, j'utilise un hidden qui contient les ID des éléments sélectionnés.

Je me retrouve avec un $_POST['element'] du genre "5,14,18,25" avec explode(','$_POST['element']); ...
Tu peux aussi utiliser qqch du genre name="formations[]" qui te permet de récupérer tes données côté serveur via le tableau $_POST['formations'].
Ça me paraît plus simple et plus propre...

tm