11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous,

J'ai un retour json suite à une requete $.ajax. J'ai donc un objet json.terminaux qui se présente de la manière suivante :

{"terminaux":{"8":"APPLE IPAD 2 16G","9":"APPLE IPAD 2 16G","10":"APPLE IPAD 3 16G","11":"APPLE IPAD 3 64G","13":"APPLE IPHONE 4S","31":"HTC DESIRE S","32":"HTC DESIRE S","33":"HTC ONE X","34":"HTC ONE X","14":"NOKIA LUMIA 800","1":"RIM BOLD 9900","2":"RIM BOLD 9900","3":"RIM TORCH 9860","4":"RIM TORCH 9860","5":"RIM TORCH 9860","6":"RIM TORCH 9860","7":"RIM CURVE 9360","16":"SAMSUNG GALAXY TAB 8,9","17":"SAMSUNG GALAXY TAB 8,9","18":"SAMSUNG GALAXY TAB 8,9","19":"SAMSUNG OMNIA 7","20":"SAMSUNG OMNIA 7","21":"SAMSUNG GALAXY S2","22":"SAMSUNG GALAXY S2","24":"SAMSUNG GALAXY S3 blanc","26":"SAMSUNG GALAXY NOTE","27":"SAMSUNG GALAXY NOTE","29":"SAMSUNG GALAXY NEXUS","30":"SAMSUNG GALAXY NEXUS"}}


En gros ce genre de chose :

1: "RIM BOLD 9900"
2: "RIM BOLD 9900"
3: "RIM TORCH 9860"
4: "RIM TORCH 9860"
5: "RIM TORCH 9860"
6: "RIM TORCH 9860"
7: "RIM CURVE 9360"
8: "APPLE IPAD 2 16G"
9: "APPLE IPAD 2 16G"
10: "APPLE IPAD 3 16G"
11: "APPLE IPAD 3 64G"
13: "APPLE IPHONE 4S"
14: "NOKIA LUMIA 800"
16: "SAMSUNG GALAXY TAB 8,9"
17: "SAMSUNG GALAXY TAB 8,9"
18: "SAMSUNG GALAXY TAB 8,9"
19: "SAMSUNG OMNIA 7"
20: "SAMSUNG OMNIA 7"
21: "SAMSUNG GALAXY S2"
22: "SAMSUNG GALAXY S2"
24: "SAMSUNG GALAXY S3 blanc"
26: "SAMSUNG GALAXY NOTE"
27: "SAMSUNG GALAXY NOTE"
29: "SAMSUNG GALAXY NEXUS"
30: "SAMSUNG GALAXY NEXUS"
31: "HTC DESIRE S"
32: "HTC DESIRE S"
33: "HTC ONE X"
34: "HTC ONE X"


Coté HTML j'ai ça :

<select  name="Id_mobile" required >
	<option value="">Terminaux</option>
</select>


Je voudrai en gros compléter la liste select avec les éléments du retour json avec comme value les key (chiffres) et dans la balise option le nom du terminal :

<option value="20">SAMSUNG OMNIA 7</option>

Je suppose qu'il faut faire une boucle avec each par exemple mais je ne sais pas faire hélas Smiley decu .
Modifié par Klesk (22 Oct 2012 - 14:42)
J'en suis là sans succès :

var select = $('input[name=Id_mobile]'),
	options = select.attr('options');

$('option', select).remove();
$.each(json.terminaux, function(val, text) {
	options[options.length] = new Option(text, val);
});
Ca fonctionne avec ça :

var select = $('#Id_mobile'),
	options = select.prop('options');

$('option', select).remove();
$.each(json.terminaux, function(val, text) {
	options[options.length] = new Option(text, val);
});


En fait le options = select.attr('options'); ne fonctionne pas avec ma version de JQuery.