header refreshed in div ipv hele browser

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
ik zit een een probleempje... laat ik anders zeggen ik snap het niet.

ik heb een knop(op index.php), die voert een paar php funties uit van bv test.php. nu wordt test.php
door een javascript geopend in een div, om de echo's van de voorgang netjes weer te geven. gaat allemaal goed.

maar nu wil ik aan het einde van de test.php de header laten refreshen om te zorgen dat alle info op de pagina een up to date is.
dat doe ik dan met header("Location: index.php")
ik heb het ook geprobeerd met header("Refresh: url=index.php")

maar tot mijn grote verbazing word wel de index.php geopend, maar in de div waar ik de test.php naar toe verwezen had. hoe kan dat? en belangrijker nog hoe los ik ddat op?
 
Een div kan niet refreshen, tenzij je javascript/ajax gebruikt. Bij een header refresh zal de hele pagina opnieuw geladen worden.

Wat jij beschrijft is het gedrag van een iframe.

Om echt tot een oplossing te komen zul je (een deel van) de code moeten plaatsen.
 
klopt, ik doe het via ajax, en het is ech 100% een div.

met dit script doe ik het:
Code:
return '<script type="text/javascript">
 
function getXMLHTTP() { //fuction to return the xml http object
   
    var xmlhttp=false;  
    try {
        xmlhttp=new XMLHttpRequest();
    } catch(e) {        
        try {           
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e1) {
                xmlhttp=false;
            }
        }
    }
            
    return xmlhttp;
}
 
function link(strURL,strDIV) {
 
  var req = getXMLHTTP(); // fuction to get xmlhttp object
 
  if (req) {
 
    req.onreadystatechange = function() {
 
      if (req.readyState == 4) { //data is retrieved from server
 
        if (req.status == 200) { // which reprents ok status     
        
          document.getElementById(strDIV).innerHTML=req.responseText;
        } else { 
          alert("There was a problem while using XMLHTTP:\n");
        }
      }            
    }        
    req.open("POST", strURL, true); //open url using get method
    req.send(null);
 
  }
}
 
 function getobject(objx)
 {
if (document.getElementById)
return document.getElementById(objx)
else if (document.all)
return document.all[objx]
}

ik had ook verwacht dat de hele pagina zou herladen. maar dat is echt niet het geval. hij propt de komplete pagina in de div van waar de header functie word gestart.

ik konm mijn ogen ook niet geloven wat er gebeurde!

ik gok dat het iets te meken heeft met de innerHTML functie die gebruikt wordt om de div te vullen!

maar zo'n held ben ik niet met java
 
Ik ben niet echt bekend met ajax toepassingen. Puur voor de functionaliteit zou je een meta refresh kunnen gebruiken, maar een mooie oplossing is dat niet. Misschien dat de mensen op het javascript forum een betere oplossing hebben.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan