Bonjour, étant actuellement dans des études de développements, je voulais aborder des techniques et langages que je n'avais pas abordé en cours .
En effet je suis donc sur un projet à base de JS et d'AJAX que je ne connaissait pas du tout il y'a encore quelques semaines.
Je viens donc vers vous pour soliciter votre aide.
En effet je bloque sur un select multiple. Et ce malgrès les différents tutos ou post suivi pour tenter de le résoudre .
En effet je cherche à pouvoir sélectionner plusieurs éléments de mon select afin de les enregistrer dans ma bdd.
En effet mon ancienne version me permettait de rajouter d'autre select cependant cela n'est pas pratique et j'aimerais pouvoir tout sélectionner dans le même.
code enregistrer.php
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['numCP']) && !empty($_POST['mdp']) && !empty($_POST['ri1']) && !empty($_POST['profil']) && !empty($_POST['activite'])) { include '../../connexion.php'; $nom = $_POST['nom']; $prenom = $_POST['prenom']; $numCP = $_POST['numCP']; $mdp = $_POST['mdp']; $ris[0] = $_POST['ri1']; if(!empty($_POST['ri2'])) { $ris[1] = $_POST['ri2']; } if(!empty($_POST['ri3'])) { $ris[3] = $_POST['ri3']; } $profil = $_POST['profil']; $activite = $_POST['activite']; $requete = 'SELECT EXISTS(SELECT 1 FROM app_utilisateur WHERE NumCP = "'.$numCP.'");'; $resultat = ReqToTab($requete); // Si l'utilisateur n'existe pas, ajoute un nouveau, sinon le met à jour if($resultat[0][0] == 0) { // Ajout du nouvel utilisateur $requete = 'INSERT INTO app_utilisateur (Nom, Prenom, NumCP, idProfil, mdp) '; $requete .= 'VALUES ("'.$nom.'", "'.$prenom.'", "'.$numCP.'", '; $requete .= $profil.', "'.$mdp.'");'; $idUtilisateur = insertSQL($requete); } else { // Mise à jour des informations $requete = 'UPDATE app_utilisateur '; $requete .= 'SET nom = "'.$nom.'", prenom = "'.$prenom.'", idProfil = '.$profil.' '; $requete .= 'WHERE NumCP = "'.$numCP.'";'; insertSQL($requete); $requete = 'SELECT idUtilisateur FROM app_utilisateur '; $requete .= 'WHERE NumCP = "'.$numCP.'";'; $resultat = ReqToTab($requete); $idUtilisateur = $resultat[0][0]; } //MAJ de l'activite de l'utilisateur dans la GPEC $requete = 'SELECT EXISTS(SELECT 1 FROM app_utilisateursgpec WHERE idUtilisateur = "'.$idUtilisateur.'");'; //echo $requete."<br>"; $resultat = ReqToTab($requete); if ($activite == "Actif"){$activite = 1;}else{$activite = 0;} // Si l'utilisateur n'existe pas, ajoute un nouveau, sinon le met à jour if($resultat[0][0] == 0) { // Ajout du nouvel utilisateur $requete = 'INSERT INTO app_utilisateursgpec (idUtilisateur, activite) '; $requete .= 'VALUES ("'.$idUtilisateur.'", "'.$activite.'");'; $idUtilisateur = insertSQL($requete); } else { // Mise à jour des informations $requete = 'UPDATE app_utilisateursgpec '; $requete .= 'SET activite = "'.$activite.'" '; $requete .= 'WHERE idUtilisateur = "'.$idUtilisateur.'";'; insertSQL($requete); } // Ajoute/met à jour le RI $requete = 'DELETE FROM app_utilisateursri WHERE idUtilisateur = '.$idUtilisateur.';'; insertSQL($requete); foreach($ris as $key => $ri) { $requete = 'INSERT INTO app_utilisateursri (idUtilisateur, idRI) '; $requete .= 'VALUES ('.$idUtilisateur.', '.$ri.');'; insertSQL($requete); echo $ri; } }
index.php
script AJAX fonction enregistrer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 echo ' <span class="ri">'; echo ' <select name="ri1">'; echo ' <option value=""></option>'; $ris = ReqToTab('SELECT * FROM app_ri'); foreach($ris as $ri) { echo ' <option value="'.$ri[0].'">'.$ri[1].'</option>'; } echo ' </select>'; echo ' </span>'; echo ' <span class="ri"></span>'; echo ' <span class="ri last"></span>';
j'ai donc compris qu'il fallait modifier le select de l'index.php comme suit :
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 function enregistrerUtilisateur(form, txtRedir) { var nom = form.elements['nom'].value; var prenom = form.elements['prenom'].value; var numCP = form.elements['numCP'].value; var mdp = 'azerty'; if(form.elements['mdp'] !== undefined) { mdp = form.elements['mdp'].value; } var ri = Array(); ri[0] = form.elements['ri1'].options[form.elements['ri1'].selectedIndex].value; if(form.elements['ri' + (ri.length + 1)] !== undefined) { ri[ri.length] = form.elements['ri' + (ri.length + 1)].options[form.elements['ri' + (ri.length + 1)].selectedIndex].value; } var profil = form.elements['profil'].value; var activite = form.elements['activite'].value; var loadBar = document.getElementById('loading'); function startLoading() { loadBar.style.display = 'block'; } function stopLoading() { loadBar.style.display = 'none'; } var timeOutId = setTimeout(startLoading, 1000); var requete = 'administration/utilisateurs/enregistrer.php'; var postRI = ''; for(var i = 0; i < ri.length; i++) { postRI += '&ri' + (i + 1) + '=' + ri[i]; } var xhr = getXHR(); xhr.onreadystatechange = function() { //alert(xhr.responseText); if(xhr.readyState == 4 && xhr.status == 200) { var input = document.createElement('input'); input.type = 'hidden'; input.name = 'afficher'; input.value = 'utilisateurs'; var prod = document.getElementById('prod'); prod.elements['txtRedir'].value = txtRedir; prod.appendChild(input); prod.submit(); clearTimeout(timeOutId); stopLoading(); //console.log(xhr.responseText); } } xhr.open('POST', requete, true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send('&nom=' + nom + '&prenom=' + prenom + '&numCP=' + numCP + '&mdp=' + mdp + postRI + '&profil=' + profil + '&activite=' + activite); }
cependant je bloque sur le script js ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo ' <select name="ri1[]" multiple>';
Merci d'avance,
Bien cordialement
Partager