Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

A l'aide !

6 réponses
Avatar
unbewusst.sein
problème bizarre :

j'ai un fichier php qui fait un requête xhr sur un "serveur" (un autre
fichier php) qui retourne sous forme xml/html l'arborescence d'un
dossier.

j'obtiens les bons fichiers, la bonne structure html, MAIS les images
incluses dans le html inclus (*) par cette requête, n'apparaissent pas,
ni même les images incluses indirectement par le css.

si ce document "index.php" je le sauvegarde en tant que "index.php.html"
et que je l'ouvre, toutes les images apparaissent ???

je ne pige pas pourquoi elles n'apparaissent pas avec index.php

le document en question est là :
http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.html
c'est la version sauvegardée sur ma bécanne est uploadée sur free.

apparemment le xhr ne fonctionne pas chez free, mais ce n'est pas mon pb
pour l'instant.


* l'inclusion est faite par :
var root=document.getElementById('root');
var id=xmlDoc.getAttribute('id');
var lis=xmlDoc.getElementsByTagName('li');
//alert(id);
for(var i=0,li;li=lis[i];i++){root.appendChild(li);}

xmlDoc est la responseXML du xhr.
l'élément d'id "root" est un <ul />
--
Une Bévue

6 réponses

Avatar
unbewusst.sein
Une Bévue wrote:

j'obtiens les bons fichiers, la bonne structure html, MAIS les images
incluses dans le html inclus (*) par cette requête, n'apparaissent pas,
ni même les images incluses indirectement par le css.



je précise que les liens (<a href...) ne sont pas fonctionnels excepté
après enregistrement (ie. index.php -> index.php.html)
--
Une Bévue
Avatar
unbewusst.sein
j'ai "un peu" progressé.

j'ai cherché à valider ma feuille de style css incluse dans le document
sauvegardé (enregistrement d'un fichier index.php en index.php.xhtml)

le validateur du w3c m'a trouvé une erreur en première ligne du css :
<style type="text/css"><![CDATA[
-----------------------------^

il n'était pas content de trouver un [ après le !
comme c'est tout à fait normal en xhtml le <![CDATA[ ... ]]>

j'ai externalisé le css dans un fichier externe que j'ai pu valider sans
problème.

donc ça viendrait plutôt d'un problème caractère car cette page fait
appel à un fonction js browse(dir)

qui, si elle est appellée depuis le fichier index.php ne pose pas de
problème.

par contre pour le fichier index.php.xhtml, aussi bien FFRC2 que
Safari/Webkit me disent ne pas trouver la fonction browse(dir) qui est
pourtant bien dans le fichier ainsi inclus :

<script src="browse.js" type="text/javascript"></script>

d'après moi le fichier index.php est bien servi comme étant du type
application/xhtml+xml car, lorsque je cherche à l'enregistrer sur ma
bécanne, FFRC2 me propose d'emblée une extension xhtml.

j'ai mis le header suivant dans mon php :
header('Content-type: application/xhtml+xml; charset="utf-8"',true);

bon au cas où quelqu'un aurait une idée...
--
Une Bévue
Avatar
Olivier Miakinen
Le 07/06/2008 20:57, Une Bévue a écrit :
[ http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.html ]



Tu n'es pas sympa de ne pas vérifier les liens que tu donnes... ;-)

Bon, c'est : http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.xhtml

d'après moi le fichier index.php est bien servi comme étant du type
application/xhtml+xml



Moi j'obtiens ceci :
----------------------------------------------------------------------
En-têtes HTTP (réponses) -
http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.xhtml

Date: Sat, 07 Jun 2008 20:44:38 GMT
Server: Apache/ProXad [May 5 2008 17:44:06]
X-Powered-By: PHP/4.4.3-dev
Connection: close
Content-Type: text/html

200 OK
----------------------------------------------------------------------

car, lorsque je cherche à l'enregistrer sur ma
bécanne, FFRC2 me propose d'emblée une extension xhtml.



SeaMonkey me propose de l'enregistrer sous le nom index.php.xhtml.htm

j'ai mis le header suivant dans mon php :
header('Content-type: application/xhtml+xml; charset="utf-8"',true);



Ben ça n'a pas l'air de marcher.
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:


> j'ai mis le header suivant dans mon php :
> header('Content-type: application/xhtml+xml; charset="utf-8"',true);

Ben ça n'a pas l'air de marcher.



ben, comme j'avais un doute au sujet du xhtml, je suis revenu à html,
mais bon, la page a exactement les mêmes symptômes :
- pas d'images;
- les liens a href ne fonctionnent pas.

la page en php (j'ai vérifié elle y est bien) :
http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php
maintenant elle fonctionne, avec les mêmes symptômes, sur free.

que veut dire "elle fonctionne" ?

la page en elle-même, ne contient rien :
------------------------------------------------------------------------
<?php
header('Content-type: text/html; charset="utf-8"',true);
require_once ('config.php');
?>
<html>
<head>
<title>Ajax Tree File Browser</title>
<meta name="Generator" content="TextMate"/>
<meta name="Author" content="Yvon Thoraval"/>
<meta http-equiv="Content-Script-Type" content="text/javascript"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<link href="dir_tree.css" rel="stylesheet" type="text/css"/>
<script src="config.js" type="text/javascript"></script>
<script src="browse.js" type="text/javascript"></script>
<script src="preload.js" type="text/javascript"></script>
<script type="text/javascript">
window.onload=function(){
//document.location.href='browse.php?dir=/XML';
preloadIcons();
browse('<?=$dir?>');
};
</script>
</head>
<body>
<div id="busy" align="center"><h1>Click on a folder to
browse</h1></div>
<div id='content'><ul id='root' class='root'></ul></div>
<span id='error'></span>
</body>
</html>
------------------------------------------------------------------------

c'est le script js browse("/XML") (fichier browse.js) ($dir est défini
dans config.php) qui fait une requête xhr au script php browse.php
lequel répond en codant en html l'arborescence du dossier /XML (un seul
niveau).

donc ça ça marche sur index.php

je résumerais que la page est "fonctionnelle" et pourtant comme figée.

la page sauvegardée sur ma bécanne est en (vérifié) :

http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/index.php.html

elle affiche donc (en premier) ce que j'aurais dû obtenir avec index.php
avec les images et les liens, de cette première partie avec images,
fonctionnent.
la deuxième partie sans images etc ne fonctionne pas mieux qu'index.php.
(c'est le window.onload qui lance la requête en js)
bien sûr cette page index.php.html n'est là que pour expérimentation.

je sèche complétement...
--
Une Bévue
Avatar
Mickaël Wolff
Une Bévue a écrit :
je sèche complétement...



J'ai l'impression que le navigateur ne voit pas que tu as modifié
l'arbre. Ou alors, il n'a pas compris que les nouveaux nœuds doivent
être interprétés comme de l'HTML. D'ailleurs, en utilisant Firebug, le
texte dans le HTML Tab correspondant à tes importations est voilé. Et si
tu modifie un nœud img, l'image s'affiche et le texte dans l'outil de
déboguage devient clair. On peut observer le même comportement lorsqu'un
élément a un style display:none. Je pense qu'il faudrait creuser dans ce
sens.

Cependant, il faut premièrement que tu corriges
<http://thoraval.yvon.free.fr/PHP/AJAX_dir_tree/browse.php>, car il
crache des erreurs qui rendent le XML invalide.

Deuxièmement, ne fait pas générer de l'HTML par ce même script.
Préfères la production d'un format XML basique de ton crû, qui te
permette de décrire aisément une arborescence de fichiers.

Comme ça, plutôt que d'importer des nœuds qui ne sont pas vus comme de
l'HTML, tu les créeras à la volée et ils devraient correctement s'afficher.

J'ai fais un script d'essais. J'ai importé des nœuds depuis un vrai
document HTML transmis via un XHR, et l'img est correctement importée,
et surtout l'image s'affiche. Ce qui me conforte dans mon hypothèse de
départ.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
unbewusst.sein
Mickaël Wolff wrote:

J'ai l'impression que le navigateur ne voit pas que tu as modifié
l'arbre.



en fait, j'ai trouvé le problème, il m'a suffit, dans le script
"brows.php" d'ajouter le namescape dns les éléments li que j'importe...

c'était tout ;-)
--
Une Bévue