Avatar billede claushelth Nybegynder
20. september 2003 - 12:49 Der er 27 kommentarer og
1 løsning

opdater frame

Hej
Jeg har 2 frames. frame_top og frame_indhold.

I min top er der en menu, i indhold er der en undermenu samt "indhold" på siden. Der logges ind på forsiden i frame_indhold. Når der er logget ind vil jeg skrive brugerens navn samt et logud-link i frame_top.

Det vil sige at jeg skal opdatere frame_top ved login (i den form der logges ind i), samt skal opdatere frame_top ved tryk på logud knap.

Jeg starter med login:
Jeg har et script der således ud:

<script language=javascript type="text/javascript">

function rFrame() {
    window.parent.frames[\"frame_top\"].location.href=\"./top.php\";
}
</script>

og aktiveringen sker i min form her:

<input type=\"submit\" value=\"Log ind\" onclick=\"rFrame();\">

men det virker ikke
Avatar billede skovenborg Nybegynder
20. september 2003 - 12:53 #1
du kan godt nøjes med at skrive:
parent.frame_top.location.href="./top.php";
Avatar billede claushelth Nybegynder
20. september 2003 - 13:10 #2
okay ja...hmm det hjalp engang imellem...den virker ikke hver gang. Jeg har indsat det samme script ved logud linket i top_frame. Det er selvfølgelig meningen at logud linket ikke skal vises hvis man ikke logget ind, men den forsvinder ikke hver gang. Efter man så egentlig har logget ud kan man forsøge at trykke på logud igen, eller opdatere browseren, og så bliver den aktiveret korrekt og logud linket forsvinder.

Det er ligesom om at den ikke refresher hver gang. Den gør det samme med login.

Kan du stadig hælpe?
Avatar billede claushelth Nybegynder
20. september 2003 - 13:11 #3
er det noget med rækkefølgen tingene skal aktiveres?
Avatar billede claushelth Nybegynder
20. september 2003 - 13:20 #4
jeg kan se der er noget om det i det her svar forneden...men jeg vil gerne have det konverteret til mit script:
http://www.eksperten.dk/spm/248924
Avatar billede claushelth Nybegynder
20. september 2003 - 13:26 #5
skal lige sige jeg har tjekktet med det svar og indsat scriptet i head men det hjælper slet ingenting.
Avatar billede skovenborg Nybegynder
20. september 2003 - 13:38 #6
præcis hvordan ser dit fulde script ud - altså med frames og den slags.
Avatar billede claushelth Nybegynder
20. september 2003 - 13:43 #7
:-) okay så kommer det hele her:

index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

<html>
  <head>
  <title>Dokumentationssystem hos Krak</title>

  <!-- Stylesheet til hjemmesiden -->
  <link rel=stylesheet href="/css/krakdok.css" type="text/css" media="screen">
  <meta http-equiv="Content-Type" Content="text/html; Charset=ISO-8859-1">
  <meta http-equiv="Pragma" content="no-cache">

  </head>
  <frameset rows="65,*">

      <frame name="frame_top" src="top.php" scrolling="no" marginwidth="0" marginheight="0" frameborder="1" noresize>
    <frame name="frame_indhold" src="indhold.php" scrolling="auto" marginwidth="0" marginheight="0" frameborder="1">

  </frameset>

  <noframes>
  <body>
    <p>Browseren understøtter ikke frames og derfor kan denne side ikke bruges før der installeres en nyere version.</p>
  </body>
  </noframes>
</html>

login.php(bliver læst ind når inhold.php (frame_indhold) læses hvis der ikke er nogen der er logget ind):

<?php
//Start sessions, som vi på denne side bruger til at vise fejl i login
//Samt til at vise en evt. value i brugernavns feltet
session_start();
    if(isset($_SESSION['brugernavn']))
    {
        $value = $_SESSION['brugernavn'];
        unset($_SESSION['brugernavn']);
    }
    else
    {
        $value = "";
    }
?>
<?php include_once ($_SERVER["DOCUMENT_ROOT"] . "/design/indhold_top.php"); ?>

<!-- HER STARTER INDHOLDET -->

<?php


    echo"Brugernavn: test<br />
        Password: test<br />

        <form action=\"make_login.php\" method=\"post\">
        Brugernavn:<br>
        <input type=\"text\" name=\"brugernavn\" value=\"".$value."\"><br>
        Password:<br>
        <input type=\"password\" name=\"password\" value=\"\"><br>
        <input type=\"submit\" value=\"Log ind\" onclick=\"rFrame();\">

        </form><br>
    ";

    //Er session "navne_fejl" sat? Så vis en besked og slet session

        if(isset($_SESSION['navne_fejl']))
        {
            echo"Der findes ingen bruger med indtastet brugernavn";
            unset($_SESSION['navne_fejl']);
        }
    //brugernavnet findes, men forkert password
        if(isset($_SESSION['password_fejl']))
        {
            echo"Det indtastede password er forkert!";
            unset($_SESSION['password_fejl']);
        }
?>

<script language=javascript type="text/javascript">
function rFrame() {

    parent.frame_top.location.href="/top.php";
}
</script>

<!-- HER SLUTTER INDHOLDET -->

<?php include_once ($_SERVER["DOCUMENT_ROOT"] . "/design/indhold_bund.php"); ?>

top.php:

<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Krak-DOK</title>
      <!-- Stylesheet til hjemmesiden -->
      <link rel=stylesheet href="/css/krakdok_top.css" type="text/css" media="screen">
      <meta http-equiv="Content-Type" Content="text/html; Charset=ISO-8859-1">
        <meta http-equiv="Pragma" content="no-cache">


  </head>

<body>

<table border="1" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="10%" rowspan="2"><img src="/image/top_krak.gif" alt="Krak"></td>
    <td width="45%" colspan="2"><a href="/indhold.php" target="frame_indhold">Krak-DOK</a></td>
    <td width="45%" colspan="2">
        <?php
            echo "Brugernavn: ".$_SESSION['brugernavn']." ";
            if($_SESSION['brugernavn'] == "test")
            {
                echo "<a href=\"/login/logout.php\" target=\"frame_indhold\" onclick=\"rFrame();\">Log ud</a>";
            }
        ?>
    </td>
  </tr>

  <tr>
    <td width="20%">&nbsp;</td>
    <td width="20%"><a href="/server/?menunavn=Server" target="frame_indhold">Server</a></td>
    <td width="20%"><a href="/statistik/?menunavn=Statistik" target="frame_indhold">Statistik</a></td>
    <td width="20%"><a href="/standardvejledning/?menunavn=Standardvejledning" target="frame_indhold">Standardvejledning</a></td>
  </tr>
</table>

<script language=javascript type="text/javascript">
function rFrame() {

    parent.frame_top.location.href="/top.php";
}
</script>

</body>
</html>
Avatar billede skovenborg Nybegynder
20. september 2003 - 13:48 #8
hmm, din frame_top bliver /top.php lige meget om du logger ud eller ind - er det meningen????
Avatar billede claushelth Nybegynder
20. september 2003 - 13:51 #9
:-) velbekommen

hmm altså i min top er der noget php der siger at hvis brugenavet er = test skal den vise brugernavnet samt logud linket, ellers skal der ikke stå noget. Det vil sige ja, /top.php er den samme fil der skal opdateres i frame_top
Avatar billede claushelth Nybegynder
20. september 2003 - 14:02 #10
hvis jeg skal logge ud er det som om at den først opdatere frame_top 2. gang man trykker på logud. Det vil sige at første gang logger den korrekt ud, men frame_top viser noget forkert, da den ikke er blevet opdateret endnu. Hvis man trykker log ud igen opdatere den korrekt??
Avatar billede skovenborg Nybegynder
20. september 2003 - 14:05 #11
prøv først og fremmest at placere scriptet <script language...> i <head> sektionen, på de forskellige filer.

Herefter kan du også prøve med parent.frame_top.location.reload();
Avatar billede skovenborg Nybegynder
20. september 2003 - 14:13 #12
når du logger ind skulle du måske også først opdatere frame_top i din make_login.php fil
altså du kunne skrive nederst i din make_login.php fil:
<script type="text/javascript">
function rFrame() {

    parent.frame_top.location.href="top.php";
}
rFrame();
</script>
Avatar billede claushelth Nybegynder
20. september 2003 - 14:14 #13
hmm ja det vil jeg lige prøve for det andet med head gjorde ingen forskel
Avatar billede claushelth Nybegynder
20. september 2003 - 14:17 #14
men min make_login er en re php fil, der gør js vel ingen forskel? Make_login redirecter til indhold.php, hvis ellers brugeren fandtes, ellers skriver den en besked i sessions og sender en tilbage til loginside med fejlbesked
Avatar billede claushelth Nybegynder
20. september 2003 - 14:20 #15
okay..nu ser det faktisk ud til at virke det med make_login.php

er det pænt at lægge js ind i en ren php fil?

jeg har lagt det sådan her:

    else //brugeren er gogkend og sendes til den rigtige side
    {
        $_SESSION['navn']     = $brugertjek->Fornavn." ".$brugertjek->Efternavn;
        header("Location:../indhold.php");
        exit;
    }

//Fjerner $resultat fra ram
mysql_free_result($resultat);

}
?>

<script type="text/javascript">
function rFrame() {

    parent.frame_top.location.href="top.php";
}
rFrame();
</script>
Avatar billede claushelth Nybegynder
20. september 2003 - 14:21 #16
så er det vel ikke nødvendigt at heve scriptet med i loginsiden, hvis frame_top opdateres fra make_login.php ?
Avatar billede claushelth Nybegynder
20. september 2003 - 14:22 #17
æv..sorry...det virker heller ikke hver gang...efter flere forsøg
Avatar billede claushelth Nybegynder
20. september 2003 - 14:27 #18
har også forsøgt at sætte denne ind i indhold.php (den side der vises efter der logges ind):

<body onload=\"rFrame();\">
som kalder funktionen der skal opdatere frame_top. Men det virker heller ikke!!!
Avatar billede claushelth Nybegynder
20. september 2003 - 14:29 #19
jeg kan slet ikke forstå at det skal være så svært at opdater en side eller frames?

Nogle gange virker denne løsning, men det sker oftere at den ikke virker.
Avatar billede skovenborg Nybegynder
20. september 2003 - 14:34 #20
egentlig kunne du godt bare skrive:
<body onload="parent.frame_top.location.reload();">

Kunne du ikke give et link man kunne se det hele på?
Avatar billede claushelth Nybegynder
20. september 2003 - 14:35 #21
ok..er måske kommet på sporet af noget...lavede lidt om i funktionen:

<script language=javascript type="text/javascript">
    function rFrame() {

        parent.frame_top.location.reload();
              //det er jo den samme fil der skal genindlæses
    }
    </script>

nu skal jeg bare finde ud af hvor den er nødvendig at have.
Avatar billede claushelth Nybegynder
20. september 2003 - 14:37 #22
hehe.. :-)
Desværre arbejder jeg lokalt, da min server står og kører en anden færdig hjemmeside.

Men det ser ud som om den opdatere hver gang nu...jeg forsøger lige lidt mere med den..
Avatar billede claushelth Nybegynder
20. september 2003 - 14:52 #23
nej...jeg orker det simpelthen ikke mere...jeg sætter mit logud link i indholdssiden nu...jeg er ikke den største man javascript, og det gør det nok ikke bedre.
Avatar billede skovenborg Nybegynder
20. september 2003 - 14:55 #24
ked af jeg ikke kunne hjælpe mere :-(  men det er lidt svært når man ikke lige kan se siderne og hvordan de er opbygget.
Avatar billede claushelth Nybegynder
20. september 2003 - 14:57 #25
ja jeg forstå...og mange tak for forsøget alligevel...jeg lader ? stå lidt endnu, så hvis jeg får js til at virke...skriver jeg igen :-)
Avatar billede skovenborg Nybegynder
20. september 2003 - 14:58 #26
umiddelbart kunne jeg godt se det logiske i at du placerede kaldte scriptet hver gang du loadede en side nede i din frame_indhold - mærkeligt at det ikke virker.
Avatar billede claushelth Nybegynder
20. september 2003 - 15:03 #27
jep...men i hvert fald kan du godt smide et svar nu...har testet det lidt, og det ser ud til at virke.

jeg indsatte:
<body onload="parent.frame_top.location.reload();">
på siderne i frame_indhold som det eneste sted, og det virker. Jeg har ingen ting i frame_top, da det logud link linker til indholdssiden, som jo automatisk opdatere frame_top hver gang. Jeg tror at grunden til at virkere sporadisk før var fordi den opdaterede flere steder fra på forkellige sider på forskellige tidspunkter.
Jeg krydser fingre for at den virker hver gang nu...smid et svar...og mange tak for hjælpen...
Avatar billede skovenborg Nybegynder
20. september 2003 - 15:09 #28
okay ;-)

ellers er du velkommen til at skrive igen. Håber det virker fra nu af.
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel