Bonjour à tous,

Je n'arrive pas à résoudre un problème que j'ai avec l'extraction de données dans une source Json avec Jquery.
J'accède parfaitement à mon tableau fields, mais lorsque je souhaite faire un data[fields[i].name], cela ne me retourne rien...
Quelqu'un a t'il une idée d'une solution pour ce problème ?

Source Json :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
{"os":
[{"id":"1","value":"AIX"},{"id":"2","value":"HP-UX"},{"id":"3","value":"Linux"},{"id":"4","value":"Solaris"},{"id":"5","value":"Windows"},{"id":"6","value":"Autre"}],
"priority":
[{"id":"1","icon":"priority_blocker.gif","value":"Urgent"},{"id":"3","icon":"priority_major.gif","value":"Normal"},{"id":"4","icon":"priority_minor.gif","value":"Low"}],
"security":
[{"id":"1","value":"Aucune"},{"id":"2","value":"value1"},{"id":"3","value":"value2"},{"id":"4","value":"Support"}],
"fields":
[{"hidden":false,"name":"priority","required":true,"type":"selectImg"},{"hidden":false,"name":"security","required":true,"type":"select"},{"hidden":false,"name":"os","required":true,"type":"select"},{"hidden":false,"name":"component","required":false,"type":"input"},{"hidden":false,"name":"summary","required":true,"type":"input"},{"hidden":false,"name":"description","required":true,"type":"textarea"},{"hidden":false,"name":"attachment","required":false,"type":"file"},{"hidden":false,"name":"duedate","required":false,"type":"input"}]}
Mon traitement Jquery.ajax :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
$.ajax({
      type: "POST",
      url: portletContextURL,
      data: {productId:$('#product').val(), issueTypeId:$('#issueType').val()},
      dataType: 'json',
      cache: false,
      success: function(data){
    	  // Parcours des champs.
    	  var myFields = data['fields'];
    	  for(var i = 0 ; i < myFields.length ; i++){
    		  if(myFields[i].type == 'selectImg' || myFields[i].type == 'select'){
    			  // On vide le composant.
    			  $('#'+myFields[i].name).children().remove();
----------> Mon problème est ici :
    			  var mySelectField = data[myFields[i].name];
    			  // Parcours des valeurs et affichage de celles-ci.
    			  for(var y = 0 ; y < mySelectField.length ; y++){
    				  if('#'+myFields[i].type == 'select'){
    					  $('#'+myFields[i].name).append($('<option></option>').attr('value',mySelectField[y].id).text(mySelectField[y].value));
    				  }else if('#'+myFields[i].type == 'selectImg'){
    					  $('#'+myFields[i].name).append($('<option></option>').attr('value',mySelectField[y].id).attr('title',portletContextRoot+'/img/'+mySelectField[y].icon).text(mySelectField[y].value));
    				  }
    			  }
    			  // Si le champs est obligatoire, on ajoute la classe de contrôle.
    			  if(myFields[i].required){
    				  $('#'+myFields[i].name).addClass('notNull');
    			  }else{
    				  $('#'+myFields[i].name).removeClass('notNull');
    			  }
    			  /*
    			   * Si le champs n'est pas caché, on recharge le dropdownlist
    			   * et on affiche le bloc correspondant.
    			   * */ 
    			  if(!myFields[i].hidden){
    				  $('#'+myFields[i].name).msDropDown().data('dd');
	    	    	  $('#'+myFields[i].name+'Bloc').show();
    			  }
    		  }else{
    			  // Si le champs est obligatoire, on ajoute la classe de contrôle.
    			  if(myFields[i].required){
    				  $('#'+myFields[i].name).addClass('notNull');
    			  }else{
    				  $('#'+myFields[i].name).removeClass('notNull');
    			  }
    			  // Si le champs n'est pas caché, on recharge le dropdownlist.
    			  if(!myFields[i].hidden){
	    	    	  $('#'+myFields[i].name+'Bloc').show();
    			  }
    		  }
    		  // Affichage du bouton d'action.
    		  $('#actionBloc').show();
    	  }
      }
});
Grosso-modo, en fonction du type de champs, j'affiche le composant HTML et je souhaite récupérer les valeurs des selects.

Merci pour votre aide.