Avatar billede Gudiik Nybegynder
13. oktober 2009 - 21:04 Der er 5 kommentarer og
1 løsning

Opdater 2 Divs på en gang.

Hej allesammen, har fået super hjælp af jer herinde til at få lavet et script som opdatere en div. Og det virker helt fint. Men skal have lavet sådan at der er 2 divs som opdatere. Så har prøvet og kopiere scriptet 2 gange, og ændret lidt så jeg troede det virkede. Scriptet ser således ud:

<script type="text/javascript">
var xmlhttp;
var count = 0;
function hent() {
    if (window.XMLHttpRequest) { // code for Mozilla, Safari, ** And Now IE 7 **, etc
        xmlhttp=new XMLHttpRequest();
    } else if (window.ActiveXObject) { //IE
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
    }
    if (typeof(xmlhttp)=='object') {
        var oDate = new Date();
        var url  = "hent2.php?d=" + oDate.getTime();
        xmlhttp.onreadystatechange=FileReady;
        xmlhttp.open('GET', url, true);
        xmlhttp.send(null);
    }
}

// function to handle asynchronous call
function FileReady() {
    if (xmlhttp.readyState==4) {
      if (xmlhttp.status==200) {
            OpdaterTal(xmlhttp.responseText);
            count++;
            setTimeout("hent()", 1000);
          }
        else {
            OpdaterTal(xmlhttp.statusText);
        }
      }
}

function OpdaterTal(txt) {
  document.getElementById('content').innerHTML=txt;
}
function liste() {
    if (window.XMLHttpRequest) { // code for Mozilla, Safari, ** And Now IE 7 **, etc
        xmlhttp=new XMLHttpRequest();
    } else if (window.ActiveXObject) { //IE
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
    }
    if (typeof(xmlhttp)=='object') {
        var oDate = new Date();
        var url  = "liste.php?d=" + oDate.getTime();
        xmlhttp.onreadystatechange=FileReady2;
        xmlhttp.open('GET', url, true);
        xmlhttp.send(null);
    }
}

// function to handle asynchronous call
function FileReady2() {
    if (xmlhttp.readyState==4) {
      if (xmlhttp.status==200) {
            OpdaterTal(xmlhttp.responseText);
            count2++;
            setTimeout("liste()", 1000);
          }
        else {
            Opdaterliste(xmlhttp.statusText);
        }
      }
}

function Opdaterliste(txt) {
  document.getElementById('online').innerHTML=txt;
}
</script>

Og forbinder til begge funktioner således:

<body onload="hent(); liste()">

Mit problem er at Før når jeg kun brugte Hent, så kom det i den rigtige div, lad os kalde den div1. Men nu hvor jeg har tilføjet liste(), henter den liste.php i div1 istedet for div2. Som om at liste(); bruger noget af funktionen fra hent();.

Håber i forstår mit spørgsmål og kan hjælpe mig.

På forhånd tak.
Avatar billede Gudiik Nybegynder
13. oktober 2009 - 21:06 #1
Fandt lige en fejl: Opdatertal(xmlhttp.responseText); er rettet til  Opdaterliste(xmlhttp.responseText); men virker stadig ikke
Avatar billede ebusiness Nybegynder
13. oktober 2009 - 21:26 #2
De bruger begge den globale variabel xmlhttp, de navn skal du bare ændre i en af de to blokke.
Avatar billede Gudiik Nybegynder
13. oktober 2009 - 21:28 #3
Så er det gjort. Er scriptet ser nu således ud:

http://fr.pastebin.ca/1618097

Men den siger fejl i linje 81.

Object expected.

Nu viser den det over i siden, men den opdatere det ikke som den skal. Men ved ikke lige hvad den fejl i linje 81 er?
Avatar billede ebusiness Nybegynder
13. oktober 2009 - 21:40 #4
Måske du skulle holde dit databaselogin for dig selv, bare en ide.

Anyway, de første 6 linjer er PHP og bliver ikke sendt til klienten, dermed er linje 81 for browseren linje 87 i din kode, og på den linje forsøger du at ++'e en uinitieret variabel, det kan man ikke, du skal lige have sat count2 til 0 før du kan tælle på den.
Avatar billede Gudiik Nybegynder
13. oktober 2009 - 21:43 #5
Hov ups :D Havde helt glemt det med database login :(. Men jeg prøver lige at rette det med count så.
Avatar billede tjens Nybegynder
13. oktober 2009 - 21:51 #6
Du kan bare slette de der count variable:
De lå på min demoside for at det ikke skulle køre uendeligt.
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