Avatar billede andersjo Nybegynder
10. maj 2003 - 15:12 Der er 12 kommentarer og
1 løsning

Reload en side ved onload

Hei.

Jeg har to script.
I det første kan jeg fylle inn data som skal lagres i en database. Det andre scritet utfører database-kommandoen.

Når det er gjort og jeg trykker "Tilbake" knappen kommer jeg til et vindu som viser data fra databasen. Men da vises ikke de nye dataene som nettopp ble lagt inn. Jeg må selv trykke "Refresh" eller F5 for å få til dette.

Er det en måte å få siden til å "utføre F5" på egenhånd?

Anders
Avatar billede Slettet bruger
10. maj 2003 - 15:16 #1
Prøv at sætte nogle no-cache funktioner ind:
http://www.htmlgoodies.com/beyond/nocache.html
Avatar billede roenving Novice
10. maj 2003 - 15:17 #2
Hvis du kan lægge dit svar ind i en popup, kan du have et handle til modervinduet, som du så kan få til at reloade.

Jeg kan ikke lie se andre måder at gøre det på, da reload ved onload er en uendelig løkke ...
Avatar billede Slettet bruger
10. maj 2003 - 15:22 #3
Ellers må du til at lege med sessions. Fx kan du have en session-variabel, der hedder "reloaded", sat til false, og, lige før du reloader siden, sætte den til true. Hvis variablen så er true, skal der reloades, ellers ikke.
Avatar billede jamal_s Nybegynder
10. maj 2003 - 15:23 #4
vis os koden :)
Avatar billede andersjo Nybegynder
10. maj 2003 - 16:26 #5
Prøvde no-cache funktionen uten hell.

Har også prøvd å la en cookie bestemme om siden skal reload'es ved onload.
Dette fungerte delvis. Men hadde problemer med å endre cookie-innholdet.
Satte en cookie i begynnelsen av php-scriptet, og kalte et javascript som leste cookien ved onload ( <body onload="return reload_site()"> )

<script type="text/javascript">
<!--
      function reload_site()
      {
        if(document.cookie.indexOf("humor")==0){
 
            document.cookie="humor=1";
            location.reload(true);
        }
 
        else{
 
            alert("Cookie er 1");
        }
      }
 
// -->
</script>

Altså, hvis cookie-verdien er 0, som er default verdien satt i begynnelsen av php-scriptet, skal cookie-verdien endres til 1, og siden skal reload'es.

Neste gang siden load'es vil cookie-verdien være 1, og siden vil ikke bli reload'et. Tror dette bør være en grei fremgangsmåte, men det er et problem.

Andre gang siden blir load'et er ikke cookie-verdien endret fra 0 til 1. Hvorfor? Er det noen som kan fortelle meg hvordan en cookie-verdi kan endres midt i et script vha javascript?

Anders.
Avatar billede roenving Novice
10. maj 2003 - 16:36 #6
Du tester på, om humor er det første i cookien ikke på værdien ...
Avatar billede roenving Novice
10. maj 2003 - 16:37 #7
if(document.cookie.substr(6)=="0"){
Avatar billede andersjo Nybegynder
10. maj 2003 - 16:55 #8
Prøvde

  if(document.cookie.substr(6)=="0"){

i stedet, men da gikk programmet rett i else{}.
Avatar billede olebole Juniormester
10. maj 2003 - 17:07 #9
<ole>

Hvis det er en 'hjemmelavet' tilbage-knap, du mener, kan den laves sådan:
  <a href="dinside.php" onclick="location.href=this.href+'?u='+new Date().getTime();return false;">Tilbage</a>

Ellers kan du jo fra dit script, der udfører DB-kommandoerne, redirect'e med et unikt argument på samme måde, som jeg gør det med et manuelt link, ovenfor.

/mvh
</bole>
Avatar billede andersjo Nybegynder
10. maj 2003 - 17:20 #10
Ahh..

Dette var nettopp hva jeg ønsket å oppnå. Dessuten var det mye enklere.
Flott!! Takk skal du ha.
Avatar billede andersjo Nybegynder
10. maj 2003 - 17:22 #11
Legg inn et svar olebole, så skal du få poengene...

Men takk til dere andre også.
Avatar billede olebole Juniormester
10. maj 2003 - 18:45 #12
;o)
Avatar billede olebole Juniormester
11. maj 2003 - 02:54 #13
Takker mange gange  :)
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