PDA

View Full Version : Modify setcookie



hnpdyn
02-13-2006, 04:49 AM
How can I modify setcookie from checkbox to onload (script below)

Checkbox original=<input type=checkbox name="cat" onClick="SetCookie('animal', this.name, exp);">cat

I tried these but they aren't work.
<body onload="SetCookie('animal', this.name, exp);"> (not work)
<body onload="SetCookie('animal', cat, exp);"> (not work)

What is the right way???

Please help me, Thank You!

--------------------------------------------------
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var expDays = 30;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
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 favorite = GetCookie('animal');

if (favorite != null) {
switch (favorite) {
case 'cat' : url = 'cat.html'; // change these!
break;
case 'dog' : url = 'dog.html';
break;
case 'gerbil' : url = 'gerbil.html';
break;
case 'gopher' : url = 'gopher.html';
break;
}
window.location.href = url;
}
// End -->
</script>
</HEAD>

<!-- STEP TWO: Copy this code into the BODY of your HTML document -->

<BODY>

<center>
<form>
<table><tr><td>
Please choose your Favorite Pet:<br>
<input type=checkbox name="cat" onClick="SetCookie('animal', this.name, exp);">Cat<br>
<input type=checkbox name="dog" onClick="SetCookie('animal', this.name, exp);">Dog<br>
<input type=checkbox name="gerbil" onClick="SetCookie('animal', this.name, exp);">Gerbil<br>
<input type=checkbox name="gopher" onClick="SetCookie('animal', this.name, exp);">Gopher<br>
</td></tr>
</table>
</form>
</center>

</BODY></HTML>

jscheuer1
02-13-2006, 06:26 AM
<body onload="SetCookie('animal', 'cat', exp);">

However, if you have any other onload events (they can appear anywhere within a script block as well as in the body tag) on the page (such as one to retrieve the cookie value). There will probably be conflicts. The code in your post after the dotted line has none though.