Avatar billede mall Nybegynder
25. februar 2007 - 12:51 Der er 6 kommentarer og
1 løsning

Reloade frames efter submit i form.

Hej eksperter!

Jeg har på min side 6 frames.

leftFrame, rightFrame, menu, top, hovedside, bottom.

I top framen har jeg en login form. Når man skriver kode og brugernavn og trykker login, så vil jeg gerne ha at menu, hovedside og bottom bliver reloadet for at "opdage" at brugeren er logget ind. Jeg har kigger lidt på noget java script:

function ReloadFrames() {
parent.hovedside.location.reload(true);
parent.menu.location.reload(true);
parent.bottom.location.reload(true);
}

Men det virker ikke.. Man logger ind, men siderne bliver ikke reloadet..

Nogen der har en løsning på problemet?

På forhånd tak!
Avatar billede kalp Novice
25. februar 2007 - 13:09 #1
du skal da i hvertfald bare skrive reload()

uden det der true
Avatar billede mall Nybegynder
25. februar 2007 - 13:12 #2
Det har jeg også prøvet.. Virker heller ikke..
Avatar billede kalp Novice
25. februar 2007 - 13:26 #3
hvis du f.eks har dette

  <frameset cols="80,*" frameborder="NO" border="0" framespacing="0">
    <frame src="sideet.htm" name="leftFrame" scrolling="NO" noresize>
    <frame src="sideto.htm" name="mainFrame">
  </frameset>

så er det ikke på filnavnet med "name" attributtens værdi du finder en frame.

testede ovenstående med et link..

<A HREF="java script:parent.mainFrame.location.reload()">Reload</A>

og det virkede.
Avatar billede mall Nybegynder
25. februar 2007 - 13:30 #4
Ja, men jeg skal bruge det i en form.. Når man klikker på submit, så logger den ind og reloader de frames der er tale om..
Avatar billede roenving Novice
25. februar 2007 - 14:41 #5
.reload(true) betyder (i hvert fald i teorien !-) at browseren _skal_ hente siden på serveren, uden true-parameteren defaulter den til false, så det er op til browseren at gætte sig til, om siden er blevet ændret (og det er bl.a. afhængig af brugerens indstillinger)

-- men problemet er nok, at den frame, hvor login-formen er, er gået i gang med at reloade og funktionen derfor ikke udføres ...

Prøv derfor at smide koden i frameset-dokumentet, og kald den med en lille tidsforskydelse:

<script type="text/javascript">
function updateFrames(){
  setTimeout("ReloadFrames()",100);// 1/10 sekund -- tilpas evt. denne
}
function ReloadFrames() {
  window.hovedside.location.reload(true);
  window.menu.location.reload(true);
  window.bottom.location.reload(true);
}
</script>

-- så kalder du den ved submit med:

<form ... onsubmit="parent.updateFrames();">
Avatar billede mall Nybegynder
25. februar 2007 - 20:24 #6
Jeg regner med at du med frameset-dokumentet mener index.php..

Jeg har prøvet dit forslag.. Men det virker ikke..
Prøv evt. selv at logge ind for at se hvad jeg mener..

http://www.brokdig.malls.dk

bruger: test
Kode: test

Når man logger ind skal alt reloades.. undtagen de yderste rammer om siden.. Hvis det virker kommer der i menuen et <fieldset> med info om brugernavn, id og kontrolpanel..
Avatar billede mall Nybegynder
09. september 2007 - 14:02 #7
Lukker..
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