Toon posts:

Popupenquete usergebonden

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi beste Tweakers,

Ik heb een klus gekregen

Ik weet niet zo extreem veel van javascript, maar weet wel een klein beetje wat alles doet.

Probleemomschrijving:

Ik moet voor een intranetsite een popupenquete maken.

Deze enquete moet tevoorschijn komen als een user van de intranetsite op de site inlogd. Als de User de enquete heeft ingevuld MAG de enquete niet meer bij die user verschijnen.
Nou heb ik het voor elkaar gekregen om de popup niet meer te laten verschijnen als als de user die dag de enquete voorzich heeft gehad.

Ik heb nu met cookies gewerkt alleen ik denk dat dit probleem meer dan met cookies te maken heeft. Nou ben ik niet helemaal into javascript kan het een klein beetje maar dit probleem lijkt me dus meer dan dat .....
heeft iemand een idee?

Hier is mijn broncode

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<html>

<head>

<SCRIPT LANGUAGE="JavaScript">


<!-- Begin
var expDays = 1; // number of days the cookie should last, so now it only pop's up one's a day

var page = "http://nu.nl"; // Your page
var windowprops = "width=800,height=600,location=yes,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes";

function GetCookie (name) { 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg) 
return getCookieVal (j); 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 
} 
return null;
}
function SetCookie (name, value) { 
var argv = SetCookie.arguments; 
var argc = SetCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
document.cookie = name + "=" + escape (value) + 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
((path == null) ? "" : ("; path=" + path)) + 
((domain == null) ? "" : ("; domain=" + domain)) + 
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) { 
var exp = new Date(); 
exp.setTime (exp.getTime() - 1); 
var cval = GetCookie (name); 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.open(page, "", windowprops);

}
else {
count++;
SetCookie('count', count, exp);
}
}

// End -->
</script>

</head>

<Body onLoad="checkCount()">



</body>

</html>



alvast bedankt voor de reactie

[ Voor 9% gewijzigd door Willem op 03-06-2003 10:26 . Reden: Gaarne in het vervolg zelf de [ code ] haken gebruiken ;) ]


Verwijderd

En wat is er mis? Waar denk je dat het aan ligt?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

uuuuh wat dacht je van de expire time van je cookie langer dan een dag zetten (say, een maand ofzo) totdat de popup weer weggehaald is van de site?

Dan heb je hem 1x, en daarna niet meer.
Sim-Pel toch?

Stop uploading passwords to Github!


Verwijderd

Topicstarter
Papa Eend schreef op 03 June 2003 @ 10:31:
uuuuh wat dacht je van de expire time van je cookie langer dan een dag zetten (say, een maand ofzo) totdat de popup weer weggehaald is van de site?

Dan heb je hem 1x, en daarna niet meer.
Sim-Pel toch?
ja ik denk het niet man want daar komen ze achter als ie er naar een maand weer is, maar het is een optie ;)

Verwijderd

Dan zet je hem toch op 100 maanden?!? Hoe lang denk je dat die enquete actief moet blijven? Je moet ook eens de uitslag kunnen bepalen, toch?

  • Schmoove
  • Registratie: Juli 2001
  • Laatst online: 20-08 11:58
Als je het in een cookie gaat stoppen zul je dat wel moeten doen denk ik. Want als het cookie na 1 dag verloopt, waar ga je dan de info halen dat ie die popup niet meer mag tonen?

Maar goed, je hebt het over users die inloggen, dus dan zal er een database achter die site hangen met user records. Ik zou zeggen voeg aan die database een kolom toe met daarin een boolean voor elke user waarin staat of hij/zij de popup al gehad heeft of niet. Ben je van het hele gezeur van cookies af en het werkt vrij eenvoudig.

Wil je het toch echt met javascript en cookies doen, tja dan denk ik toch echt dat de oplossing die Papa Eend gaf het enige is wat je kan doen.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Ik snap het probleem ook niet helemaal.. en haal ook eigenlijk helemaal geen 'probleem' uit je openingspost.

Cookie is een oplossing, maar beter is inderdaad de user 'flaggen' in de DB. Een veld toevoegen aan een bestaande tabel is meestal niet zo netjes, beter is van het bestaande model af te blijven en een losse user/enquete tabel te maken. Zo kun je zelf later ook nog meerdere enquetes toevoegen zonder weer je datamodel aan te hoeven passen.

  • Expander
  • Registratie: Februari 2001
  • Niet online
Dit is een intranet? Met vaste IP's?

Dan zou je kunnen proberen serverside elk IP op te slaan en steeds te checken of ie al in de lijst staat.

Oh, ik zie dat dit een variant is op wat men boven mij zegt..

Expanding the inexpandable


  • Luit
  • Registratie: Februari 2001
  • Niet online
Dit stukje code komt toch van deze wesbite: http://javascript.internet.com/cookies/visits.html

Is het dan niet gewoon een kwestie van alle variabelen aanpassen in het script en het invoegen in je website.

Dit script is eigenlijk niet bedoeld voor jouw probleem:
This cookies records how many times the visitor has visited the page and writes to the page accordingly. (ie: You have been here 2 times).

Verwijderd

als je je cookies verwijdert in IE 6 zal de popup onmiddelijk weer terug komen. Als het echt belangrijk is dat user maar max 1 keer de enquette krijgt, moet het in de db vastleggen...
Pagina: 1