Bonjour à tous,

je navigue depuis peu sur les pages du site, et je le trouve très intéressant. Je m'appel Sébastien, je ne me suis pas encore présenté dans le bar, mais dès que je récupère mon accès internet chez moi, je prendrais le temps de me présenter avec précision.

Apparement c'est ici qu'il faut poster si l'on est pas certains de la catégorie dans laquelle entre la question Smiley confus

Voila mon problème, je développe actuellement un site pour mon stage sur une machine de type *BSD avec firefox comme navigateur de test, cela dit le site est développé pour des clients qui utilisent en grande majorité Internet Explorer.

J'espère que je vais réussir à être clair (c'est pas gagné Smiley ohwell ) et que je ne relancerais pas le "troll" concernant les frames!

voila l'architecture de mon problème:

J'ai une page principale, que l'on appelera page.html qui contient toute sorte de chose, mais la chose qui nous intéresse c'est un emplacement déstiné à recevoir un tableau HTML. Cet emplacement est défini par une balise div avec un id spécifique.

Ensuite j'ai une iframe en bas de page qui appel la page script.php, et dans ce script une très grosse fonction qui met énormement de temps à s'exécuter (en fait elle récupère un max de données et fait un max de calcul, pour donner un superbe tableau Smiley cligne )

une fois la fonction fini et le tableau construit dans une variable php, j'appel une fonction qui se trouve dans affiche.php qui permet de modifier le contenu de la balise div avec le tableau construit par la fonction, sans gêner l'affichage de la page.

Maintenant que tout le monde comprend je vous met les pages d'exemple que j'ai réaliser (ce sera certainement plus claire pour tous):

page.html

<html>
<head>
<title>Essai</title>
</head>
<body>
<h2>Page de test</h2>
<div id="text">
   Test 1
</div>
<iframe width="0" height="0" frameborder="0" src="script.php"></iframe>
</body>
</html>


script.php

<?

$variable='<table><tr><td colspan="2">Test</td></tr><tr><td>1</td><td>2</td></tr></table>';
$nom="text";

include("affiche.php");

?>


affiche.php

<?php
echo "<script language='javascript'>                                                                                                                           
        parent.document.getElementById('".$nom."').outerHTML='<div id=".$nom.">".$variable."</div>';                                                           
      </script>";
?>


Voila, maintenant vous savez tous, alors c'est vrai que je débute, et puis le site existe déjà, je ne fais que des modifications.

Mais j'aimerais avoir vos avis sur ce code, les solutions qui s'offre à moi sans forcément refaire tous le site.

Mon but est de rendre au moins cette partie accessible (à tous les navigateurs d'une part, et à quiconque d'autre part)

Je vous remercie par avance de votre aide, et vous pries de m'excuser pour les éventuelles fautes (Toute correction est la bienvenue Smiley cligne )

P.S: J'ai oublié de préciser que le code ci dessus fonctionne sous Internet Explorer mais non sous firefox
Modifié par Agrumes (19 May 2006 - 16:30)
Bonjour,

pour que ton script fonctionne sous FF ou IE, dans affiche.php tu dois remplacer le outerHTML (balise propre à ie) par innerHTML (balise adoptée par ts ls navig).
parent.document.getElementById('".$nom."').innerHTML='".$variable."';


Ensuite, j'ai supprimé la balise <div> avant la variable passée par script.php car tu aurais eu comme résultat :

<div id="text">
   Test 1
<div id="text">
<table><tr><td colspan="2">Test</td></tr><tr><td>1</td><td>2</td></tr></table>
</div>
</div>

... soit, 2x le div id="text" dans la même page Smiley ohwell
Merci Videl, ca fonctionne impeccable!

Quels sont les sites qui référencent ce genre d'astuces, avec des listings complets et plus ou moins simple a appréhender???

ouai je sais j'en demande beaucoup, mais bon Smiley biggrin