Bonjour,
je développe actuellement une petite application en ajax / MVC et je me pose une question à laquelle j'ai bien du mal à trouver une réponse.
Contexte (très simplifié) :
Mon application affiche un tableau. Pour chaque tableau j'ai un bouton qui me permet d'ajouter une ligne. Lorsque je clique sur le bouton, une fenêtre modale s'ouvre avec un formulaire des champs à remplir. Je clique sur le bouton ok de la modale et celle ci se ferme en envoyant les données au serveur pour enregistrement en base. Je souhaite ensuite ajouter la ligne au tableau SANS recharger la page, en ajax donc...
Suite à l'enregistrement des données, le script php serveur renvoie les valeurs de la nouvelle ligne à l'ajax appelant et mon but est donc, en JS d'ajouter une ligne au tableau. Jusque là, rien de bien complexe. Actuellement lorsque l'ajax reçoit les nouvelles données, il construit la ligne à ajouter avec les balises HTML nécessaires et append cette nouvelle ligne au tableau.
Or, si la structure de mon tableau change, il faudra que je modifie cette structure dans la vue initiale (celle appelée au chargement de la page) MAIS AUSSI dans le javascript permettant d'ajouter des lignes !
Je me dis que si j'ai un même bout de code présent à 2 endroits différents, c'est que j'ai un problème de conception.
La solution que j'ai imaginée est la suivante :
- je crée une sous vue permettant de définir une ligne de tableau
- à l'initialisation, je boucle sur les résultats et appelle la vue à chaque tour
- lors de l'ajout d'une ligne au tableau en ajax, le script PHP "appelle" la sous vue, y "place" les nouvelles données et renvoie le tout au javascript qui n'a plus qu'à attacher cette nouvelle ligne toute prête à la suite du tableau...
- Ainsi si la structure de mon tableau change, jee n'ai que la sous vue à modifier et le tour est joué !
Que pensez vous de ma solution ? J'imagine ne pas être le premier à m'être posé la question, mais n'ayant pas réellement trouvé de façon de faire, je me pose la question concernant la mienne...
Merci de vos retours et conseils !
Partager