SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Ha! mais là, en +, tu veux ':' remplaçant '/' !
(sais pas pourquoi tu veux tous ces trucs d'id, m'enfin ...)
ben c'est juste pour avoir un id conforme à la norme du w3c qui ne
supporte pas le % mais seulement :
A-Za-z0-9 : et .
j'ai lu sur le net que urlencode et encodeURI ne sont pas strictement
equivalents.
c'est bien ce que je disais ;-)
mais là est-ce réellement important ?
+/- j'ai un fichier avec une apostrophe "'" qui ne marche pas.
mon premier essai est là :
http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php
la première requête fonctionne mais la page s'affiche sans images et les
liens href ne marchent pas, je ne pige pas pourquoi.
j'ai trouvé le pb, c'est un bête problème de namespace...
ce browse() ?
sur mon mac, j'ai sauvegardé cette page index.php en index.php.html :
http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.html
elle montre d'abord ce que la page précédente (index.php) aurait dû
afficher puis fait une nouvelle requêtesur le même dossier avec le même
résultat...
Pourquoi n'a t-on pas simplement :
<li title="menus - last modified: 23rd May 08 19:35:50"
class="dir"
id="ID:Users:yt:Sites:XML:menus"
onclick="browse(this);">
menus
</li>
au lieu de :
<li title="menus - last modified: 23rd May 08 19:35:50">
<span onclick='browse("ID:2FUsers:2Fyt:2FSites:2FXML:2Fmenus");'
class="dir">menus</span>
<div style="margin-left: 2em"
id="ID:2FUsers:2Fyt:2FSites:2FXML:2Fmenus">
</div>
</li>
pour obtenir après déploiement :
<li title="menus - last modified: 23rd May 08 19:38:10"
class="dir_opened"
id="ID:Users:yt:Sites:XML:menus"
onclick="browse(this);">
menus
<ul>
<li class="file"
id="ID:Users:yt:Sites:XML:menus:truc.xhtml"
onclick="browse(this)">
truc.xhtml
<li>
<li class="imag"
id="ID:Users:yt:Sites:XML:menus:truc.png"
onclick="browse(this)">
truc.png
<li>
</ul>
</li>
oui, ça la structure, c'est modifiable, il fallait d'abord que ça roule
pour tester le principe...
function browse(what) {
var path = decodeURIComponent(what.id.substring(2).replace(/:/g,'%2F'));
if(what.className.indexOf('opened')<0)
location = path;
else
location = replier(path);
// what.getElementsByTagName('UL')[0].style.display = 'none';
}
euh, attends là, le script marche par xhr, il affiche à l'ouverture
l'arborescence de premier niveau et quand on clique sur un dossier, le
javascript browse(dir); fait un xhr vers le php browse.php qui lui
répond en envoyant le contenu du répertoire sous forme xml/xhtml.
--
Une Bévue