Bonjour à toutes et à tous !
Je fais encore appel à vous car j'ai de nouveau besoin de vos lumières/connaissances.
J'ai mis un screen de mon formulaire en pièce jointe.
Ci-dessous je vous mets les parties concernées par ce formulaire.
Fonction de création :
La fontion qui me permet de récupérer la liste des personnes selon le cas d'appel :
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 function Creer(quoi) { switch (quoi) { case "Equi" : divf='<form method="post"><input id="ideq" type="hidden" readonly="readonly" name="ideq" value=""/>'; divf+='<label for="nomeq">Nom <span class="etoile">*</span>: </label><input id="noeq" type="text" name="nequ" value=""/><br/><br/>'; divf+='<label for="nomdi">Directeur <span class="etoile">*</span>: </label>'; divf+='<SELECT id="sdir" name="ndir[]" onchange="this.options[this.selectedIndex].value">'; ListerPers('Dir',0); divf+='</select><br/><br/>'; divf+='<div id="dispo">'; divf+='<span class="titre">Personne(s) disponible(s)</span>'; divf+='<SELECT id="sdisp" name="persdisp[]" size="10" ondblclick="Transferer(\'A\', this)">'; ListerPers('Disp',0); divf+='</select></div>'; divf+='<div id="pres">'; divf+='<span class="titre">Personne(s) dans l\'équipe</span>'; divf+='<SELECT id="spres" name="perspres[]" size="10" ondblclick="Transferer(\'E\', this)">'; ListerPers('Pres',0); divf+='</select></div>'; divf+='<div class="expliq">Double cliquez dans la liste correspondante pour ajouter/enlever une personne dans l\'équipe</div>'; divf+='</form><br/><br/>'; divf+='<label><span class="txtetoile">* Champs obligatoire</span></label>' div='<input type="Button" value="Valider" onclick="Valider(\'C\', \'Equi\')">'; break;
La fonction qui me permet de faire passer les personnes d'une liste à l'autre :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68 function ListerPers(qui, nb) { //alert ('qui : '+qui + ' nb : '+nb); var a_listpers=getxhr(); a_listpers.open("POST","php/lister_pers.php",true); a_listpers.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); a_listpers.onreadystatechange = function() { if(a_listpers.readyState == 4) { if(a_listpers.status == 200) { if (a_listpers.responseText!="-1") { result=a_listpers.responseText.split('*'); if (nb==0 && qui=="Dir") { getid('sdir').innerHTML='<OPTION value="0" SELECTED>Sélectionner un directeur'; } for(i=0;i<result.length-1;i++) { enreg=result[i].split(';'); if (nb==enreg[0] && qui=='Dir') { getid('sdir').innerHTML+='<OPTION value="'+enreg[0]+'" SELECTED>'+enreg[1]+' '+enreg[2]; } else { switch (qui) { case "Dir" : getid('sdir').innerHTML+='<OPTION value="'+enreg[0]+'">'+enreg[1]+' '+enreg[2]; break; case "Disp" : getid('sdisp').innerHTML+='<OPTION value="'+enreg[0]+'">'+enreg[1]+' '+enreg[2]; break; case "Pres" : getid('spres').innerHTML+='<OPTION value="'+enreg[0]+'">'+enreg[1]+' '+enreg[2]; break; } } } } else { switch (qui) { case "Dir" : getid('sdir').innerHTML='<OPTION value="0" SELECTED>Aucune personne dans la base'; break; case "Disp" : getid('sdisp').innerHTML='<OPTION value="0" SELECTED>Il n\'y a personne de disponible'; break; case "Pres" : //getid('spres').innerHTML='<OPTION value="0" SELECTED>Il n\'y a personne dans l\'équipe'; break; } } } else alert("Error code " + a_listpers.status); } }; a_listpers.send("qui="+qui); }
La fonction de validation :
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 function Transferer(sens, liste) { var existe=0; if (sens=='A') { for (i=1;i<getid("spres").length;i++) { if (getid("spres").options[i].text==liste.options[liste.selectedIndex].text) { existe=1; } else { if (existe==1) { existe=1; } else { existe=0; } } } if (existe==0) { var option= new Option(liste.options[liste.selectedIndex].text, liste.options[liste.selectedIndex].value); var lg=getid('spres').length; //alert ('lg pres : '+lg); getid('spres').options[lg]=option; liste.options[liste.selectedIndex]=null; } else { alert ('Cette personne est déjà sélectionnée.'); } } else { var option= new Option(liste.options[liste.selectedIndex].text, liste.options[liste.selectedIndex].value); //alert ('lg dispo : '+getid('sdisp').length); getid('sdisp').options[(getid('sdisp').length)]=option; liste.options[liste.selectedIndex]=null; } }
Mon soucis principal est que je souhaiterai passer tous les noms des personnes qui sont dans l'équipe en paramètre du bouton valider. J'ai vu/lu qu'en Ajax ce n'était pas possible qu'il fallait faire du Json mais je n'y comprends pas grand chose et du coup je ne vois pas comment l'implanter dans mon code. Est-ce qu'il faut que je crée une fonction de validation pour CE formulaire ou est-ce que je peux adapter ma fonction Valider ? Si oui, comment ?
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 function Valider(traitement, quoi) { param="trait="+traitement+"&obj="+quoi; switch (quoi) { case "Equi" : param+="&ideq="+getid('ideq').value+"&nomeq="+getid('noeq').value; //Récupération du directeur choisi dir=getid('sdir').options[getid('sdir').selectedIndex].value; break; case "Cate" : param+="&idca="+getid("idca").value+"&nomca="+getid("noca").value; break; case "Conse" : param+="&idco="+getid("idco").value+"&nomco="+getid("noco").value; break; case "Pays" : param+="&idp="+getid("idp").value+"&sigle="+getid("sigp").value+"&nomp="+getid("nomp").value; break; case "Pers" : //Récupération de la profession et de la ville sélectionnées profselec = getid('spro').options[getid('spro').selectedIndex].value; if (getid('novi').options[getid('novi').selectedIndex].value==0) { vilselec=Math.floor((Math.random()*36000)+1); } else { vilselec=getid('novi').options[getid('novi').selectedIndex].value; } //Vérification âge de la personne var annee= new Date(); var dtenais=getid('ddnpe').value; var annais=dtenais.substring(6,10); if((annee.getFullYear()-annais) < 20) { getid("msg").innerHTML="Impossible de créer cette personne : elle a moins de 20 ans."; getid("msg").style.color="#FF0000"; getid("msg").style.visibility='visible'; Creer(quoi); break; } param+="&idpe="+getid("idpe").value+"&nompe="+getid("nope").value+"&pnompe="+getid("pnope").value+"&ddn="+dtenais+"&tel="+getid("telpe").value+"&adr="+getid("adrpe").value; param+="&email="+getid("emape").value+"&idv="+vilselec+"&idprof="+profselec; break; case "Prof" : param+="&idpr="+getid("idpr").value+"&nompr="+getid("nopr").value; break; } var a_val=getxhr(); a_val.open("POST","php/valider.php",true); a_val.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); a_val.onreadystatechange = function() { if(a_val.readyState == 4) { if(a_val.status == 200) { if (a_val.responseText=='msg1') { getid("msg").innerHTML="Vous devez saisir les champs obligatoires."; getid("msg").style.color="#FF0000"; getid("msg").style.visibility='visible'; Creer(quoi); } else { Gerer(quoi); } } else alert("Error code " + a_val.status); } }; a_val.send(param); }
Mon second problème que j'ai résolu en abandonnant l'idée (mais sait-on jamais si quelqu'un sait ... ^^) est que je voulais quand on sélectionne un directeur que son nom apparaisse dans la liste des personnes dans l'équipe et du coup qu'il disparaisse des personnes disponibles.
Voilà, merci de m'avoir lue et de vos réponses.
Partager