Avatar billede medievil Nybegynder
12. maj 2003 - 12:00 Der er 8 kommentarer og
1 løsning

Online brugere !

Hejsa ! Jeg har forsøgt at lave et lille eksempel på visening af online brugere !

Det virker ikke helt fordi den udskriver ik tallet. Koden ser sådan her ud:

<%
if session("test") = "" then
  session("test") = 1
end if

test = session("test")
%>

<font size="1" face="Tahoma">Online: <div id="onlusers"></div><br>
<a href="add.asp?style='1'" target="_blank">
Tilføj 1</a> - <a href="add.asp?style='-1'" target="_blank">Slet 1</a></font>
<script language="javascript">
function getonlineusers(){
document.getElementById("onlusers").innerHTML = '<%= test %>';
setTimeout("getonline();",3000);
}
</script>

Håber i kan hjælpe !
Avatar billede mm12010 Nybegynder
12. maj 2003 - 12:59 #1
<script language="JavaScript" type="text/JavaScript">
<!--
function getonlineusers(){
  if(document.all){
    document.all.onlusers.innerText = "<%= test %>";
    }
  }
setInterval(getonlineusers(),3000);
//-->
</script>
Avatar billede olebole Juniormester
12. maj 2003 - 15:12 #2
<ole>

Nej, det gør da bare ondt værre  :)

Problemet er, du ikke reloader dokumentet. Derfor bliver kun det første tal ud ... dette tal ændres aldrig.

En anden ting er, du først må kalde scriptet, når siden er indlæst (f.eks. på onload), da div'et eller td'en, du vil skrive ind i ellers ikke eksisterer endnu  ;o)

/mvh
</bole>
Avatar billede medievil Nybegynder
12. maj 2003 - 16:54 #3
nåe jah !

Jeg har ik tid nu men jeg prøver lige i aften !
Avatar billede olebole Juniormester
12. maj 2003 - 17:39 #4
Du kan evt. lave en skjult iframe. I det ASP-dokument, der ligger deri, kan du så skrive:

<html>
<script type="text/JavaScript">
parent.setTxt('<%= test %>');
setTimeout("location.reload(true)", 20000);
</script>
</html>

Så er det dette dokument, der skal forespørge i databasen. Du skal nok ikke spørge med 3 sekunders interval ... der er ingen grund til så mange forespørgsler til serveren, hvis det kan undgåes. Jeg har her sat det til 20 sekunder.

Funktionen i hoved-dokumentet kan så se sådan ud:

<script type="text/JavaScript">
function setTxt(txt) {
  document.getElementById("onlusers").innerHTML = txt;
}
</script>

På den måde, behøver du ikke skrive så meget i dokumentet, der reloades. Det giver mindre serverbelastning  ;o)
/mvh
Avatar billede medievil Nybegynder
12. maj 2003 - 19:08 #5
Jeg prøver lige med det første først :o)
Avatar billede medievil Nybegynder
12. maj 2003 - 19:12 #6
Skal jeg skrive onload="getonline" i body'en ? eller hvad???
Avatar billede olebole Juniormester
12. maj 2003 - 21:08 #7
Dokumentet behøver ikke indeholde mere end:

<html>
<script type="text/JavaScript">
parent.setTxt('<%= test %>');
setTimeout("location.reload(true)", 20000);
</script>
</html>

Selvfølgelig med det fornødne ASP, der gør, du kan skrive variablen ud:
  <%= test %>
Avatar billede medievil Nybegynder
12. maj 2003 - 22:46 #8
Tak ! Det virker ! Smid lige et svar ind hvis du vil have points !
Avatar billede olebole Juniormester
13. maj 2003 - 03:28 #9
swaaaar  :)
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