Bonjour à toutes et à tous,

Voilà j'ai un script qui permet de remplir automatiquement un formulaire en fonction de données envoyées en Json.

Pour ce qui est des inputs et des select ça fonctionne bien par contre pour les checkbox à choix multiples c'est plus compliqué, puisque leurs valeurs sont stockées dans un sous-tableau.

Voilà le code Javascript complet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
 
<script type="text/javascript">
 
//le tableau principal au format Json, le sous tableau est celui associé à la clé "desert"
var params = {"entree":"orange","principal":"haricots","desert":["tarte","yahourt"]};
 
 
//la boucle de parcour du tableau principale	
for (key in params)
{	
	var balise = $('#'+ key ).get(0).nodeName.toLowerCase();
	//alert(balise);
	if(balise == 'input')
	{
		var input_type = $('#'+ key ).attr('type');
 
		if(input_type == 'text')
		{
			$('#'+ key ).val(params[key]);
		}
		else if(input_type == 'checkbox') //traitement du sous-tableau
		{
                      //ne fonctionne pas, seul le 1er paramètre du sous-tableau est pris en compte...
			$('#'+ key ).val(params[key]);
 
                        //ne fonctionne pas du tout
			for(var i = 0; i < params[key].length; i++)
			{
				$('#'+ params[key][i] ).val(params[key]).attr('checked','checked');
			}
 
		}
	}
	else if(balise == 'select')
	{
		$('#'+ key ).val(params[key]).attr('selected','selected');
	}
}
 
</script>
Comme vous pouvez le voir pour l'instant j'en suis à 2 solutions, une qui prend en compte uniquement la première valeur, est une deuxième qui ne fonctionne pas...

Je pensais à éventuellement extraire le sous-tableau de la boucle principale pour le traiter dans une autre boucle mais je ne vois pas comment faire... ou peut être y a t'il une autre solution ??

Merci beaucoup pour votre aide !!