Formater un formulaire au format JSON
Bonjour,
Je souhaiterai créer une fonction dynamique a fin de formater le résultat de mon formulaire dans un format spécifique JSON.
Sur chacun de mes champs je possède un 'data-base' contenant le nom de la table, eventuellement de la jointure, et celui du champ.
Imaginons que nous avons une table agent ayant les champs nom, prenom, enfants et coordonnees.
où enfants correspond a une jointure oneToMany et coordonnes une jointure coordonnes
Coté formulaire j'aurais :
Code:
1 2 3 4 5 6 7
|
<input type="text" data-base="nom">
<input type="text" data-base="prenom">
<input type="text" data-base="enfants|0|nomEnfant">
<input type="text" data-base="enfants|1|nomEnfant">
<input type="text" data-base="coodonnees|codePostal">
<input type="text" data-base="coodonnees|ville"> |
Je souhaiterais donc récupérer le json suivant :
Code:
1 2 3
|
{"nom":"nom4","prenom":"prenom4","enfants":[{"nomEfant":"sonNom"},{"nomEfant":"sonNom"}],"coordonnees":{"codePostal":59300,"ville"
:"maVille"}} |
Je sais que ca doit se faire en recursivité mais je n'y arrive pas.
Serait il possible de m'orienter sur la facon de procéder svp?
Merci
Edit :
Pour l'instant je suis en train d'essayer de créer une fonction qui me permetra de créer un objet sous la forme :
Code:
1 2 3 4
|
niveau1 =>
niveau2 =>
niveau3 |
Mais je n'arrive pas à cella.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
function testObj(monTab, obj) {
obj = obj || {};
if(monTab.length > 0){
obj[monTab[0]] = {};
monTab.splice(0,1);
obj = testObj(monTab, obj);
}
return obj;
}; |
Résultat obtenu:
Code:
1 2
|
{niveau1, niveau2, niveau3} |