Bonjour
J'aimerais savoir si vous pouviez m'aider à contruire une èartie de mon formuiare.
J'aimerais contruire les checkbox et radio d'un formulaire dynamiquement en fonction de la station choisie.
Ce que j'aimerais faire, c'est ceci
A deux trois truc prêt
Code HTML : 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 <div class="checkbox"> <div class="select-title">Temperature</div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-ta" checked value="5" /> <label for="id-ta">T-Air</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-ts" value="6" /> <label for="id-ts">T-Surface</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t30mm" value="7" /> <label for="id-t30mm">T-30mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t60mm" value="8" /> <label for="id-t60mm">T-60mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t100mm" value="9" /> <label for="id-t100mm">T-100mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t200mm" value="10" /> <label for="id-t200mm">T-200mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t500mm" value="11" /> <label for="id-t500mm">T-500mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-t1200mm" value="12" /> <label for="id-t1200mm">T-1200mm</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-tcb" value="13" /> <label for="id-tcb">T-Cover Bottom</label> </div> <div> <input type="checkbox" data-name="temperature" name="type[]" id="id-tcts" value="14" /> <label for="id-tcts">T-Cover Top</label> </div> </div> <div class="checkbox"> <div class="select-title">Heatflux</div> <div> <input type="checkbox" data-name="heatflux" name="type[]" id="id-hfs" value="3" /> <label for="id-hfs">Heatflux Shallow</label> </div> <div> <input type="checkbox" data-name="heatflux" name="type[]" id="id-hfb" value="4" /> <label for="id-hfb">Heatflux Bottom</label> </div> </div> <div class="checkbox"> <div class="select-title">Water</div> <div> <input type="checkbox" data-name="water" name="type[]" id="id-wl" value="1" /> <label for="id-wl">Waterlevel</label> </div> <div> <input type="checkbox" data-name="water" name="type[]" id="id-wln" value="2" /> <label for="id-wln">Waterlevel normalized</label> </div> </div>
Pour cela, j'utilise ceci qui me retorune ce que je souhaite
les console.log() m'affiche ceci
Code javascript : 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 function checkAvailbaleSensors(para){ console.log("check available sensor para:",para) return $.ajax({ url: 'checkAvailableSensors-v2.php', type: 'POST', data:para, // data: { pond: pond, from: from, to: to }, cache: false, dataType: 'json', error: function (request, error) { console.log("Error"); console.log(request.responseText); }, success: function (data) { console.log("Success availabe sensors: "); $.each(data, function(index, element) { console.log("Family:", index); /* $('#sensors').append($('<div>2</div>', { })); */ //console.log(element); $.each(element, function(ind, name) { $('#sensors').append('<div><input type="checkbox" data-name="' + name.sensor_family_name +'" name="type[]" id="id-' + name.sensor_type_name + '" value="' + name.id_sensor_type + '" /><label for="id-' + name.sensor_type_name + '">' + name.sensor_type_longname + '</label></div>'); console.log("\tname:", name.sensor_type_name); console.log("\tlongname:", name.sensor_type_longname); console.log("\tfam name:", name.sensor_family_name); }); console.log("----"); }); } }); }
Donc ca me semble bien partir et il me reste contruire dans chaque each(), ceci avec les valeurs correspondantesSuccess availabe sensors:
ponds-v2.js:177:13
Family: 1
name: wl
longname: Waterlevel
fam name: water
name: wln
longname: Waterlevel normalized
fam name: water
----
Family: 2
name: hf
longname: Heatflux Shallow
fam name: heatflux
name: hfb
longname: Heatflux Bottom
fam name: heatflux
----
Family: 3
name: ta
longname: T-Air
fam name: temperature
name: ts
longname: T-Surface
fam name: temperature
name: t30mm
longname: T-30mm
fam name: temperature
name: t60mm
longname: T-60mm
fam name: temperature
name: t200mm
longname: T-200mm
fam name: temperature
name: t500mm
longname: T-500mm
fam name: temperature
name: t1200mm
longname: T-1200mm
fam name: temperature
----
J'ai donc déjà essayé avec le append(),
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div> <input type="checkbox" data-name="heatflux" name="type[]" id="id-hfs" value="3" /> <label for="id-hfs">Heatflux Shallow</label> </div>
Le problème ou je bloque, c'est j'ai du mal comment faire avec un append() ou prepend, surtout à ce niveau
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //console.log(element); $.each(element, function(ind, name) { $('#sensors').append('<div><input type="checkbox" data-name="' + name.sensor_family_name +'" name="type[]" id="id-' + name.sensor_type_name + '" value="' + name.id_sensor_type + '" /><label for="id-' + name.sensor_type_name + '">' + name.sensor_type_longname + '</label></div>'); console.log("\tname:", name.sensor_type_name); console.log("\tlongname:", name.sensor_type_longname); console.log("\tfam name:", name.sensor_family_name); });
La ou je doute, c'est comment avoir toutes les meme famille dans un <fieldset> , par exemple?
Par exemple, la balise data-name, indique la famille auqelles appartiennent les capteurs. Il y a trois types de famille
- temperature
- water
- heatflux.
Il faudrait que j'aie
Pourriez-vous me donner une bonne piste à suivre pour ajouter ceci?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div class="chackbox remperature"> ... mes checkbox... </div> <div class="chackbox water"> ... mes checkbox... </div> <div class="chackbox heatflux"> ... mes checkbox... </div>
Merci pour vos lumières
Partager