Bonjour,
Par avance, merci à ceux qui se pencheront sur mon soucis.
a. Projet
Afficher le plan d'un étage d'un bâtiment - ok
Faire en sorte que chaque pièce soit cliquable (map et area) - ok
Soit :
Lorsque l'on clique sur une pièce, qu'une frame soit mis à jour - ok
Dans cette frame s'affiche la liste des occupants de ce bureau via une requête Active Directory - Soucis.
Ou soit :
Je pense que c'est plus compliqué, mais sinon ne pas utiliser de frame et afficher directement dans chaque area le résultat des requêtes ldap et cela pour chaque pièce, dès que le fichier php "BatA-2eme.php" est chargé.
b. Soucis
* J'aimerai passer une variable du fichier BatA-2eme.php, contenant le numéro du bureau qui correspond au bureau sur lequel on clic ("area"), vers le fichier requete-ldap.php.
c. Mon arborescence
* MAP
* index.php* BatA-2eme.php* requete-ldap.php* css° demo.css* img° BatA-NIV1.jpg* js° jquery.maphilight.min.js° jquery-1.9.0.min.js
d. Ressource
http://www.ericmmartin.com/projects/simplemodal-demos/#
https://github.com/kemayo/maphilight
e. index.php
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <html> <head> <title>mappage</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <FRAMESET COLS="30%,70%"> <FRAME SRC="requete-ldap.php" NAME="fenetreA"> <FRAME SRC="BatA-2eme.php" NAME="fenetreB"> </FRAMESET> </html>
f. BatA-2eme.php
J'ai essayé de récupérer le "name" de l'area qui vient d'être sélectionne via une fonction javascript (voir variable namearea) pour ensuite la transférer dans le fichier requete-ldap.php. Mais dans ce second fichier seul une requete javascript récupère la variable et malheureusement pas php.
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 <html> <head> <title>mappage</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script> <script type="text/javascript" src="js/jquery.maphilight.min.js"></script> <script type="text/javascript">$(document).ready(function() { $(function() { $('.map').maphilight(); $('#squidheadlink').mouseover(function(e) { $('#squidhead').mouseover(); }).mouseout(function(e) { $('#squidhead').mouseout(); }).click(function(e) { e.preventDefault(); }); }); }); </script><br /> <!-- Page styles --> <link type='text/css' href='css/demo.css' rel='stylesheet' media='screen' /> </head> <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <div id='container'> <div id='content'> <img class="map" alt="" src="img/BatA-NIV2.jpg" usemap="#mappage_Map" border="0" > <map name="mappage_Map"> <area id="A200" title="A200" alt="" coords="370,315,371,409,456,409,456,318" shape="poly" href="#" data-maphilight='{"strokeColor":"00bfff","strokeWidth":2,"fillColor":"00bfff","fillOpacity":0.2}' /> <area ... /> ... </map> </div> </div> </br> <script type="text/javascript"> var namearea = 0; $('area').click(function(e) { namearea = $(this).attr('name'); // alert(namearea); parent.fenetreA.window.location="requete-ldap.php" }); </script> </body> </html> </br>
g. requete-ldap.php
Lorsque je clique sur une area, j'ai bien l'alerte ( alert(desk); ) qui s’exécute, mais impossible d'utiliser cette variable (desk) dans php !!!
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 <script type="text/javascript"> desk = window.parent.fenetreB.namearea if (desk === undefined || desk === null) { } else { alert(desk); } </script> <?php //$desk = "A210"; $Conf_LDAP_Server = 'xxxx'; // "MyServer.MyDomain"; $Conf_Def_Dom = 'xxxx'; // "MyDomain"; $ldap_server = "ldap://".$Conf_LDAP_Server; $auth_user = 'xxxx@xxxx'; $auth_pass = 'xxxx'; $FiltreSearch = "(&(objectClass=user)(objectCategory=person)(postOfficeBox=$desk))"; $search = "OU=xxxxx,OU=xxxxx,DC=xxxxx,DC=xxxxx"; $connect = ldap_connect($ldap_server); ldap_set_option ($connect, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP opt referrals'); ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version'); ldap_bind($connect, $auth_user, $auth_pass); $sr = ldap_search($connect, $search, $FiltreSearch); $data = ldap_get_entries($connect, $sr); $infoLDAP = ldap_get_entries($connect, $sr); ldap_close($connect); $info = array(); $nom = array(); $groupe = array(); $body = '<br/><div id="Bureau"><h3>Bureau '.$desk.'</h3><p></p>'; for($i=0,$j=0 ; $i<count($infoLDAP) ; $i++,$j++) { if( !empty($infoLDAP[$i]['sn'][0]) && !empty($infoLDAP[$i]['givenname'][0]) && !empty($infoLDAP[$i]['memberof'][0]) ) { $nom = utf8_encode($infoLDAP[$i]['sn'][0]); $prenom = utf8_encode($infoLDAP[$i]['givenname'][0]); $infomail = utf8_encode($infoLDAP[$i]['userprincipalname'][0]); $body .= '<br/>'.$nom; $body .= '<br/>'.$prenom; $body .= '<br/>'.$infomail; $body .= '<br/>'.'<br/>'; } else { $j--; } } echo $body.'</div>'; ?>
Merci à ceux qui pourront me guider ou me solutionner ce soucis.
Cdt
++
Partager