Avatar billede ferrari_brian Nybegynder
10. august 2006 - 14:32 Der er 6 kommentarer og
1 løsning

javascript der kalder php, henter ikke nyt data

Hej Alle

Jeg har en funktion i javascript der kalder en php-side og viser indholdet af denne. Men når den bliver kaldt igen efter den har været loadet første gang, så viser den stadig det gamle data. Også selvom jeg har kørt php-scriptet fra den side den kalder og den har vist det rigtigt. Så viser denne funktion stadig det gamle data.

Det underlige ved det er så at det fungerer i Firefox og Opera, der opdaterer indholdet med det samme (har sat en timeout på funktionen der henter en gang imellem). Men Internet explorer kan jeg ikke få til at makke ret? Nogen forslag?


function getContent(page, params, elementid, waitmsg)
  {
    //params has to have following format
    //i.e.: c=1&id=3....
    //page is the server side script. include full path
    //i.e. ../scripts/myscript.php
      var BId = document.forms['select'].BId.value;

      //Clear our fetching variable
      var xmlhttp=false;
      //Try to create active x object
      try
      {
        xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
      }
      catch (e)
      {
        try
        {
          xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch (E)
        {
          xmlhttp = false;
        }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined')
      {
        xmlhttp = new XMLHttpRequest();
      }

      //This is the path to the PHP file on the server
      var file = page+params+BId;

      //Open the file through GET, and add the page we want to retrieve as a GET variable
      xmlhttp.open('GET', file, true);   

      xmlhttp.onreadystatechange=function()
      {
        if(xmlhttp.readyState == 1)
        {
          //Display waiting image and message while content loads.
          //Make sure you have the corect path for the image
          document.getElementById(elementid).innerHTML = \"<p><img src='images/waiting.gif' align='middle'> Please wait... <br />\"+waitmsg+ \"</p>\";
        }
        else if(xmlhttp.readyState==4) //Check if it is ready to recieve data
        {
          //Make sure there is something in the content variable
          var content = xmlhttp.responseText;

          //The content data which has been retrieved
          if( content )
          {
            //Change the inner content of your div to the newly retrieved content
            document.getElementById(elementid).innerHTML = content;   
          }
        }
      }
      //Nullify the XMLHttpRequest
      xmlhttp.send(null)
      return;
  }
Avatar billede roenving Novice
10. august 2006 - 16:05 #1
Prøv at tilføje et timestamp:

      //This is the path to the PHP file on the server
      var file = page+params+BId + "&" + new Date().getTime();
Avatar billede ferrari_brian Nybegynder
14. august 2006 - 10:13 #2
undskyld jeg ikke svarer før... Jeg tog på weekend, og glemte alt om dette... men nu er jeg igang igen ...

Hvad skulle timestamp'et hjælpe? skulle jeg tjekke det i php-filen eller ?
Avatar billede roenving Novice
14. august 2006 - 13:18 #3
Nej, men det udelukker caching i browseren ...
Avatar billede ferrari_brian Nybegynder
14. august 2006 - 13:23 #4
oki
Avatar billede ferrari_brian Nybegynder
14. august 2006 - 14:18 #5
Det gjorde underværker, men for at få den til at reloade indholdet uden at tage hele siden fra begyndelsen så fjernede jeg nedenstående del, for at den også virker i IE. Men hva, det gør ikke så meget for man nåede aldrig at se billedet alligevel:

if(xmlhttp.readyState == 1)
        {
          //Display waiting image and message while content loads.
          //Make sure you have the corect path for the image
          document.getElementById(elementid).innerHTML = \"<p><img src='images/waiting.gif' align='middle'> Please wait... <br />\"+waitmsg+ \"</p>\";
        }
        else


smider du et svar? :) takker
Avatar billede roenving Novice
15. august 2006 - 13:01 #6
Velbekomme '-)
Avatar billede roenving Novice
17. august 2006 - 16:49 #7
-- og tak for point ;~}
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