Avatar billede webbe Nybegynder
07. august 2001 - 12:22 Der er 34 kommentarer og
1 løsning

Popup ved update!

Hejsa

Jeg er ved at lave et website som bruges som active desktop i hele firmaet (intranet)!

Man kan poste beskeder som alle kan se, men man ser jo ikke beskeden med det samme!

Det jeg gerne vil er, at når sitet refresher (hvert 10. minut) tjekkes der ned i tabellen om der er nye beskeder siden der blev tjekket sidste gang!
Hvis der er det skal der komme en lille popup på brugernes skærm der fortæller at der er en ny besked på Intranettet, som de så kan tjekke!

Der er ikke noget med at man logger ind på intranettet!

Det er lidt tricky, men jeg håber der er nogen der kan hjælpe mig!
Avatar billede webbe Nybegynder
07. august 2001 - 12:23 #1
Jeg har endnu ikke noget kode, da jeg ikke lige ved hvordan jeg skal gribe det an!
Avatar billede kaare.petersen Nybegynder
07. august 2001 - 12:30 #2
lav en popup med enten et alertbox med javascript eller et window.open

og så bliver du nødt til at køre med noget session variable for at vide hvem det er som betjener maskinen...
Avatar billede webbe Nybegynder
07. august 2001 - 12:33 #3
kaare.petersen:

Så meget er jeg godt klar over, men hvordan laver jeg det rent kodemæssigt!!!???

Det er iøvrigt når min refresh blir\' triggered at der skal tjekkes.....det vil sige at det sker samtidig på alle brugeres skærme, da der bliver taget udgangspunkt i server-tiden!!!
Avatar billede slash Nybegynder
07. august 2001 - 12:37 #4
du tester for om der er nye beskeder.
Hvis ja, så redirect til din activedesktop.asp?mode=newmsg

på activedesktop.asp:
hvis mode = newmsg så
  skriv noget javascript... mit opkast
<script>
  function popski() {
<%
If mode=newmsg then
  Response.write(\"window.alert(\'Ny beskodes\')\")
end if
%>
}
</script>
popski()
Avatar billede webbe Nybegynder
07. august 2001 - 12:43 #5
slash:

Okay - det var så den sidste del af mit spørgsmål der blev besvaret! ;o)

Men hvordan laver jeg min tjeck-funktion???
Den skal jo huske hvilket id der blev tjekket på sidst og om det er det samme som det det tjekker på nu!
Avatar billede slash Nybegynder
07. august 2001 - 12:49 #6
ka du ik i db\'en lave et felt: Nybesked, x hvis det er ny besked, null hvis den er gammel.

på redirect strengen kaster du id\'erne på fra din select hvor nybesked=x... samtig updater du tabellen og sætter nysked=null

Avatar billede slash Nybegynder
07. august 2001 - 12:50 #7
hvis jeg er gal på den - så forklar lige hvad præcist mene med tjeck funktion - jeg er lidt groggy pt.!
Avatar billede slash Nybegynder
07. august 2001 - 12:50 #8
og kan desuden slet ik\' stavse :-(=)
Avatar billede webbe Nybegynder
07. august 2001 - 12:58 #9
Det sker er at der hvert 10. minut automatisk opdateres på samtlige brugeres skærme!

Brugeren KAN selv gøre det ved at klikke på et flag, men behøver ikke gøre det da det jo sker hvert 10. minut!

Det der så skal ske er, at der tjekkes på id\'et på den øverste post i tabellen.
Hvis id\'et er det samme som sidste gang (for 10 minutter siden) skal der ikke komme en popup, men er det et nyt id skal der komme en popup, med beskeden \"Der er nye beskeder i Intranet Info!\".

Det springende punkt er for mig at se hvordan man får ASP\'en til at huske det id der blev tjekket på sidste gang og sammenligne med det id der bliver tjekket på nu!

Måske jeg skulle lave en Session(Id) = rs(\"Id\"), hvor rs er defineret som den sidste nye post i db\'en???
Det burde da kunne gemme det sidste id til brug for en sammenligning!
Avatar billede slash Nybegynder
07. august 2001 - 13:05 #10
jeg ville gøre det med et falg i tabellen.
\'er der nye beskeder?
sql = \"Select id from beskedtabel where Nybesked=\'\"&x&\"\' \"
set rs = conn.execute(sql)

if not isempty(rs(\"id\")) then
  sql=update beskedtabel set nybesked=null where id = & \" rs(\"id\")
  conn.execute(sql)
  response.redirect \"aktivsektop.asp?mode=newmsg\"
  response.end 
end if

\'\'\'der redirectes kun hvis rs(\"id\") ikke er tom

Avatar billede webbe Nybegynder
07. august 2001 - 13:07 #11
Tror lige jeg vil prøve med en session først!
Avatar billede slash Nybegynder
07. august 2001 - 13:09 #12
umiddelbart vil jeg mene at mit opkast mæ db\'en er lettest :-)
Avatar billede webbe Nybegynder
07. august 2001 - 13:32 #13
Okay - må vist indrømme at det med sessions ikke rigtig virker, da en session åbenbart ikke vil virke hvis rs er tomt! ;o(

Så må vist hellere se lidt nærmere på dit forslag! ;o)
Avatar billede danriis Nybegynder
07. august 2001 - 13:53 #14
Du kan gøre sådan at hvert ti minut opdateres skærmen, fra han har logged in (altså ik på alle skærme) - var det en mulighed - hvis ja, går du som oven over altså laver en Ja/nej boks i din db og hvis der er nogle mails hvor der ikke er krydset af så \"udskriver\" du din besked/popup vindue.

-Dan
Avatar billede webbe Nybegynder
07. august 2001 - 13:54 #15
danriis:

Prøv lige at læse de postede beskeder!!!

Der bruges IKKE login på dette system!
Avatar billede danriis Nybegynder
07. august 2001 - 14:01 #16
Du kan iøvrigt også lave din popup fætter smartere hvis du istedet for at skrive window.alert skriver confirm

Så kan du fx få det til at se sådan her ud. (I dette eksempel skal du så selvfølgelig få den til at sende urlen med:

Du har fået et ny besked.

Klik her for at læse den nu.

Ok (knap) - Annuller (knap)
Avatar billede darkhero Nybegynder
07. august 2001 - 14:05 #17
<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"600; URL=\"FILNAVN\">

FILNAVN skal byttes ud med dit navn på filen der skal opdateres :)
Avatar billede webbe Nybegynder
07. august 2001 - 14:06 #18
darkhero:

Det er jo ikke det der er humlen her for den del har jeg allerede lavet! ;o)

Og det fungerer fint, men med den kode tjekker den jo ikke for nye meddelelser!
Avatar billede danriis Nybegynder
07. august 2001 - 14:37 #19
Læse de postede beskeder ? ikke helt med.
Avatar billede webbe Nybegynder
07. august 2001 - 14:42 #20
danriis:

Havde gjort opmærksom på at der IKKE blev anvendt login!
Avatar billede danriis Nybegynder
07. august 2001 - 14:47 #21
Ok, Lav en session når han åbner siden/starter computeren - nåede alla session(\"tid_start\")=time() - derefter skal du selfølgelig opdatere din session, når han har fået tjekket sin post.

Derefter kan du leje med noget datediff eller dateadd og nogle if sætninger så den efter hvert tiende minut checker det.

Du kan også lave det med noget javascript hvor du henter din ASP session og derefter går det samme bare med javascript.
Avatar billede danriis Nybegynder
07. august 2001 - 14:48 #22
Undskyld du kan ikke bruge den første metode da det vil kræve at han opdatere siden...

Men den næste skulle virke !
Avatar billede slash Nybegynder
07. august 2001 - 14:54 #23
hvad for noget kode er du ved at teste?
Avatar billede slash Nybegynder
07. august 2001 - 14:55 #24
hvilken fremgangsmåde anvender du?
Avatar billede webbe Nybegynder
07. august 2001 - 14:55 #25
slash:

En blanding af dit og noget jeg selv lige tænker over! ;o)
Avatar billede danriis Nybegynder
07. august 2001 - 14:59 #26
Har du fundet ud af noget ?
Avatar billede webbe Nybegynder
07. august 2001 - 15:12 #27
danriis:

Tjah - kan da lige poste det jeg har lavet indtil nu:

1: Oprettelse af ny post danner et nyt id med default-værdien \'Ja\' i feltet \"Ny_post\" og opdaterer samtidig den sidste post i feltet \"Ny_post\" til værdien \'Nej\'

2: Ved refresh af siden løber den nu et script igennem hvor sidste nye post opdateres i feltet \"Ny_post\" til værdien \'Nej\'.
Dette skal forhindre at popup\'en kommer hver gang der refreshes selv om der ikke er postet nyt siden sidste refresh.
Herefter opretter jeg et nyt recordset der tjekker om der er flere poster hvor feltet \"Ny_post\" har værdien \'Ja\'. Hvis dette er tilfældet skal popup\'en fyres af, ellers skal der bare redirectes til oversigten.

Konklusion:
Oprettelse af nye poster fungerer fint med insert af ny post og update af den gamle.
Ved refresh af sitet løber den også mit script igennem, men om den fyrer en popup af har jeg ikke kunnet konstatere endnu!
Avatar billede slash Nybegynder
07. august 2001 - 15:16 #28
i forlængelse af et af mine 1. posts, er her lidt pænere kode til popuppen.

Det virker hos mig - på mine active desktop :-)

<%
\' skal udskiftes med en redirect var
mode = \"ja\"
%>

<script>
  function poppedreng() {
  <%
  If mode=\"ja\" then
    Response.write(\"window.alert(\'Værdien var sand\')\")
  Else
        Response.write(\"window.alert(\'Værdien var falsk\')\")
End if
%>
}
</script>
<HTML>
<HEAD>
</HEAD>
<BODY>
<script>
poppedreng()
</script>
Avatar billede webbe Nybegynder
07. august 2001 - 15:45 #29
Har nu følgende der tjekker osv.:

<%
Option Explicit
%>
<%
Dim Connect, rs, sql, id, old_id, rs1

Set Connect = Server.CreateObject(\"ADODB.Connection\")
Connect.Open \"sb_budget\", \"scanbox_admin\", \"scanboxadm\"

Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM Scan_info WHERE ROWNUM = 1 AND Dato=\'\"&date&\"\' ORDER BY Id DESC\", Connect, 1, 3

If (rs.BOF OR rs.EOF) Then
    Response.Redirect(\"intranet_dk.asp\")
Else
    id = rs(\"Id\")
End if

old_id = id - 1

sql = \"UPDATE Scan_info SET Ny_post=\'Nej\' WHERE Id=\"&old_id
Connect.Execute(sql)
%>
<script>
function poppedreng(){
<%
Set rs1 = Server.CreateObject(\"ADODB.Recordset\")
rs1.Open \"SELECT * FROM Scan_info WHERE Ny_post=\'Ja\'\", Connect, 1, 3

If (rs1.BOF or rs1.EOF) Then
    Response.Redirect(\"intranet_dk.asp\")
End if

If rs1(\"Ny_post\") = \"Ja\" Then
    Response.Write(\"window.alert(\'Der er nye beskeder på Intranet Info\')>\")
Else
    response.redirect(\"intranet_dk.asp\")
End if
%>
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<script>
poppedreng()
</script>
</body>
</html>
Avatar billede slash Nybegynder
07. august 2001 - 15:46 #30
viker det?
Avatar billede webbe Nybegynder
07. august 2001 - 15:49 #31
Er ikke sikker!

Men kan du se om der er noget der i hvert fald IKKE vil virke i det script?
Avatar billede webbe Nybegynder
07. august 2001 - 15:57 #32
Der er i hvert fald opstået en syntax-fejl!
Avatar billede slash Nybegynder
07. august 2001 - 16:01 #33
hvor?
Avatar billede danriis Nybegynder
07. august 2001 - 21:41 #34
Jeg tror det er dato feltet som du henter forkert? (SQL query) Hvad linie får du fejl i ?
Avatar billede webbe Nybegynder
11. september 2001 - 10:52 #35
Intet har fungeret, men I skal have tak for hjælpen!
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
Kurser inden for grundlæggende programmering

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



Seneste spørgsmål Seneste aktivitet
27 min siden Pixeline cd’er til PC Af Mathilde i Windows
I dag 01:14 Windows 10 - IIS 10 Af bsn i Windows
I går 20:39 Boot fra USB Af poulmadsen i Windows
I går 11:43 Gmail-ikon på skrivebordet Win 10 Af ErikHg i Fri debat
I går 09:22 Lopslag Af Luffe i Excel