Bonjour
Je tente de cr�er une arborescence d'un syst�me UNIX ou Windows en javascript avec l'aide de la libraire YUI. Les diff�rents chemins et fichiers sont contenus dans une base de donn�es. Pour cela je fait recours � AJAX. L'arborescence est op�rationnel pour les r�pertoires, seulement j'essaye d'ajouter les fichiers qui correspondent � ces r�pertoires. Mon code est le suivant :
J'ai inclus la fonction qui extrait les param�tres de l'url ainsi que celle qui cr�er l'objet XMLHttpRequest.
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 function extractUrlParams () { // On récupère les paramètres passer par la méthode GET // Tous les paramètres seront stockés et retournés via le tableau tabRetour var tab = location.search.substring(1).split('&'); var tabRetour = []; for (var i=0; i<tab.length; i++) { var x = tab[ i ].split('='); tabRetour[i]=x[1]; } return tabRetour; } function createRequestObject() { var http; if (window.XMLHttpRequest) { // Mozilla, Konqueror/Safari, IE7 ... http = new XMLHttpRequest(); } else if (window.ActiveXObject) { // Internet Explorer 6 http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } // createRequestObject() function returnFiles(node) { // On extrait le nom du client de l'url var clientName = extractUrlParams (); // On créer l'objet XMLHTTPRequest var http = createRequestObject(); // On ouvre la connexion avec le serveur http.open('GET', './file.php?clientName=' + clientName[1] + '&path=/' + node.data + '/', true); http.onreadystatechange = (function () { if (http.readyState == 4 && http.status == 200) { // On récupère le données de la requête dans le tableau files var files = validateJSON(http.responseText); if (files !== false) { for (var i in files) { // On ajoute un noeud style HTML var tempHTML = new YAHOO.widget.HTMLNode(files[i].name, node, false, true); // On chande l'icône de ce noeud tempHTML.contentStyle = "icon-doc"; } } } }); http.send(null); } // returnFiles()
Lorsque je clique sur un noeud ( un r�pertoire ), il ouvre ce dernier mais n'affiche rien. A ce moment je referme ce r�pertoire puis d�s que je l'ouvre � nouveau il affiche correctement les fichiers. En ce qui concerne mes r�pertoires j'ai utilis� une requ�te asynchrone, et il affiche tout du premier coup. Je crois que la requ�te est trop longue et qu'il passe alors � la suite du code vu qu'il n'a pas fini de tout charger. Je voudrais savoir comment faire pour qu'il affiche tout du premier coup. J'ai essay� la requ�te synchrone, seulement il n'affiche rien ...
Je vous remercie de votre attention,
FaFa
Partager