Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 17:58 Der er 14 kommentarer og
1 løsning

opdatere div fra iframe

hej eksperter! jeg har et problem med at få denne kode til at virke og håber I kan se på det...

koden indeholder en del PHP, men håber ikke det afskrækker javascript folket :)

(har sat // foran dagskalender1() fordi den udskriver en del html og har jeg ikke brug for før jeg ser at koden virker!)
<?
include("../config.php");
?>
<html>
<head>
<script type='text/javascript'>
onload = function() {
    refresh = window.setInterval(document.getElementById('skjult').contentWindow.location.reload,5000);
}
function opdate(tekst) {
    document.getElementById('dagskalender').innerHTML = tekst;
}
</script>
</head>
<body>
<iframe id='skjult' border='0' style=height:0px;width:0px'>
    <html>
    <head>
    </head>
    <body onload="opdate('document.getElementById(\'tekst\').innerHTML')">
    <?

    $html = "";

    $html .= "
    <table width='100%' border='0' align='center' cellpadding='3' cellspacing='0'>
        <tr align='center' valign='top'>
    ";
               
            $nr = 1;
             
            $foresp = mysql_query("SELECT id,brugernavn FROM webcal_user WHERE gruppe = 'demo' ORDER by brugernavn ASC");
            while($row = mysql_fetch_array($foresp)) {
            $dagsid = $row["id"];
            $gruppenavn = $row["brugernavn"];
           
            $html .= "
            <td width='20%'>
            ";
            //$html .= dagskalender1($kal_dato,$kal_maned,$kal_ar,$gruppenavn,"100%",2);
            $html .= time();
            $html .= "
            </td>
            ";   
               
            if ($nr == 5) {
                $html .= "
        </tr>
        <tr align='center' valign='top'>
        ";
                $nr = 0;
            }
               
            $nr = $nr+1;
            }
         
        if ($nr != 1) {
            $html .= "
        </tr>
            ";
        }
       
        $html .= "
    </table>
        ";
       
    ?>
   
    <div id='tekst' style='display:none;width:0px;height:0px'>
        <? echo"$html"; ?>
    </div>
   
    </body>
    </html>
</iframe>

<div id='dagskalender'>
   
</div>

</body>
</html>
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 18:00 #1
eksempel på fejlen kan ses på denne side: http://www.myserver.lir.dk/webcal.dk_test/test/

siden er bare blank :(
Avatar billede roenving Novice
06. oktober 2003 - 18:04 #2
<body onload="parent.opdate('document.getElementById(\'tekst\').innerHTML')">
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 18:12 #3
samme resultat roenving :/
Avatar billede roenving Novice
06. oktober 2003 - 18:17 #4
Hov ja ...

body onload="parent.opdate(document.getElementById('tekst').innerHTML)">
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 18:19 #5
virker stadig ikke.. hvis man kigger i koden så er der kode i div'en "tekst" men den vil ikke overføre det :( er det min function der gør det?
Avatar billede roenving Novice
06. oktober 2003 - 18:37 #6
Kan man overhovedet skrive koden til en iframe ind i iframen ?-)

-- jeg tror, at den kode som står imellem de tags er det som vises, hvis iframen ikke genkendes af browseren ...

Læg det i en anden fil og kald den som src på iframen !-)
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 18:42 #7
det forstår jeg ikke...

skal det så se sådan her ud:

------------------------------------
index.html
<html>
<head>
<script type='text/javascript'>
onload = function() {
    refresh = window.setInterval(document.getElementById('skjult').contentWindow.location.reload,5000);
}
function opdate(tekst) {
    document.getElementById('dagskalender').innerHTML = tekst;
}
</script>
</head>
<body>
<iframe id='skjult' border='0' style=height:0px;width:0px' src='hent.php'></iframe>

<div id='dagskalender'>
   
</div>

</body>
</html>


-----------------------------
hent.php
<?
include("../config.php");
?>
    <html>
    <head>
    </head>
    <body onload="parent.opdate('document.getElementById(\'tekst\').innerHTML')">
    <?

    $html = "";

    $html .= "
    <table width='100%' border='0' align='center' cellpadding='3' cellspacing='0'>
        <tr align='center' valign='top'>
    ";
               
            $nr = 1;
             
            $foresp = mysql_query("SELECT id,brugernavn FROM webcal_user WHERE gruppe = 'demo' ORDER by brugernavn ASC");
            while($row = mysql_fetch_array($foresp)) {
            $dagsid = $row["id"];
            $gruppenavn = $row["brugernavn"];
           
            $html .= "
            <td width='20%'>
            ";
            //$html .= dagskalender1($kal_dato,$kal_maned,$kal_ar,$gruppenavn,"100%",2);
            $html .= time();
            $html .= "
            </td>
            ";   
               
            if ($nr == 5) {
                $html .= "
        </tr>
        <tr align='center' valign='top'>
        ";
                $nr = 0;
            }
               
            $nr = $nr+1;
            }
         
        if ($nr != 1) {
            $html .= "
        </tr>
            ";
        }
       
        $html .= "
    </table>
        ";
       
    ?>
   
    <div id='tekst' style='display:none;width:0px;height:0px'>
        <? echo"$html"; ?>
    </div>
   
    </body>
    </html>
Avatar billede roenving Novice
06. oktober 2003 - 18:50 #8
Uden at have checket din kode meget grundigt, så

Ja !-)
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 19:19 #9
weee det virker :D mega fedt... læg et svar, tak!
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 19:28 #10
ehmn har fået en problem når jeg flytter det over i mit andet dokument! der opdatere den ikke iframen :/ kan man opdatere den på en anden måde?
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 19:31 #11
når jeg har lavet den meget enkel virker det... og som det er nu virker det også første gang, så den overføre koden, men den opdatere ikke igen efter 5 sekunder, og det er jo ligesom det der skulle være fidussen!
Avatar billede elskermad.dk Nybegynder
06. oktober 2003 - 20:12 #12
nu virker det vist alligevel, efter jeg bruger en meta-refresh istedet for det der i bodyen! men så kommer der en grim kliklyd :( læg et svar!
Avatar billede elskermad.dk Nybegynder
07. oktober 2003 - 13:17 #13
ehmn hvis du ikke lægger et svar her idag tager jeg selv points for at rode lidt op.. kan se du har været online!
Avatar billede elskermad.dk Nybegynder
07. oktober 2003 - 20:05 #14
si til hvis du føler dig snyt :)
Avatar billede roenving Novice
08. oktober 2003 - 04:13 #15
Jeg forsøger jo at være online hver dag, men tidspunktet kan det være svært at garantere for !-)

-- og jeg tror ik' li'e at jeg mangler points ;O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester