By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,634 Members | 1,897 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,634 IT Pros & Developers. It's quick & easy.

help please..how to unescape() the value of a cookie?

P: n/a
Hello group,

I hope you guys can help me out, I am modifying a piece of code from Joe
Norman,
I did found the code here:
http://www.intranet2internet.com/pub...E=sscript&ID=3

My question:
How can I save the value's of a form to a cookie, but in the textarea's of
that form the "hard returns" must be saved with it?
I have this code:

<html><HEAD>
<SCRIPT LANGUAGE="JavaScript">
var arrRecords = new Array();
var arrCookie = new Array();
var recCount = 0;
var strRecord="";
expireDate = new Date;
expireDate.setDate(expireDate.getDate()+365);

function cookieVal(cookieName) {
thisCookie = document.cookie.split("; ")
for (i = 0; i < thisCookie.length; i++) {
if (cookieName == thisCookie[i].split("=")[0]) {
return thisCookie[i].split("=")[1];
}
}
return 0;
}

function loadCookie() {
if(document.cookie != "") {
if(cookieVal("Records") != ""){
arrRecords = cookieVal("Records").split(",");
}
currentRecord();
}
}

function setRec() {
strRecord = "";
for(i = 0; i < document.frm1.elements.length; i++) {
strRecord = strRecord + document.frm1.elements[i].value + ":";
}
arrRecords[recCount] = strRecord;
document.frm2.add.value = " NEW ";
document.cookie = "Records="+arrRecords+";expires=" +
expireDate.toGMTString();
}
function newRec() {
switch (document.frm2.add.value) {
case " NEW " :
varTemp = recCount;
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = ""
}
recCount = arrRecords.length;
document.frm2.add.value = "CANCEL";
break;
case "CANCEL" :
recCount = varTemp;
document.frm2.add.value = " NEW ";
currentRecord();
break;
}
}

function countRecords() {
document.frm2.actual.value = "Record " + (recCount+1)+";
"+arrRecords.length+" saved records";
}

function delRec() {
arrRecords.splice(recCount,1);
navigate("previous");
setRec();
}

function currentRecord() {
if (arrRecords.length != "") {
strRecord = arrRecords[recCount];
currRecord = strRecord.split(":");
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = currRecord[i];
}
}
}

function navigate(control) {
switch (control) {
case "first" :
recCount = 0;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "last" :
recCount = arrRecords.length - 1;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "next" :
if (recCount < arrRecords.length - 1) {
recCount = recCount + 1;
currentRecord();
document.frm2.add.value = " NEW ";
}
break;
case "previous" :
if (recCount > 0) {
recCount = recCount - 1;
currentRecord();
}
document.frm2.add.value = " NEW ";
break;
default:
}
}

// Splice method Protype Function
// Peter Belesis, Internet.com
// http://www.dhtmlab.com/

function pageLoad(){
if (!Array.prototype.splice) {
function array_splice(ind,cnt) {
if (arguments.length == 0) return ind;
if (typeof ind != "number") ind = 0;
if (ind < 0) ind = Math.max(0,this.length + ind);
if (ind > this.length) {
if (arguments.length > 2) ind = this.length;
else return [];
}
if (arguments.length < 2) cnt = this.length-ind;
cnt = (typeof cnt == "number") ? Math.max(0,cnt) : 0;
removeArray = this.slice(ind,ind+cnt);
endArray = this.slice(ind+cnt);
this.length = ind;
for (var i = 2; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
for(var i = 0; i < endArray.length; i++) {
this[this.length] = endArray[i];
}
return removeArray;
}
Array.prototype.splice = array_splice;
}
recCount = 0;
loadCookie();
countRecords();
}

</script>
</HEAD>

<body bgcolor="black" text="red" onLoad="pageLoad()"><center>

<center>
<form name="frm1">
<table width="391" border="1" align="center" resize="none">
<!--DWLayoutTable-->
<tr>
<td width="381" height="310" valign="top"><textarea name="textarea"
cols="57" rows="5">1) I want to save this text
2) in a cookie,
3) and save the "hard returns" with it...</textarea>
<BR> <textarea name="textarea2" cols="57" rows="5">and when I save
that text in a cookie...
It looks like the textarea underneath!</textarea> <BR>
<textarea name="textarea3" cols="57" rows="5">1) I want to save
this text__2) in a cookie, __3) and save the "hard returns" with
it...</textarea></td>
</tr>
<tr>
<td height="6"></td>
</tr>
</table>
</form>
<form name="frm2">
<table align="center" border="1" resize="none">
<tr>
<td align="center">
<input type="button" name="first" value="|<< "
onClick="navigate('first');countRecords()">
<input type="button" name="previous" value=" < "
onClick="navigate('previous');countRecords()">
<input type="button" name="next" value=" > "
onClick="navigate('next');countRecords()">
<input type="button" name="last" value=" >>|"
onClick="navigate('last');countRecords()">
<input type="box" name="actual" size=30>
</td>
</tr>
<tr>
<td align="center">
<input type="button" name="add" value=" NEW "
onClick="newRec();countRecords()">
<input type="button" name="set" value="SAVE RECORD"
onClick="setRec();countRecords()">
<input type="button" name="del" value="Delete"
onClick="delRec();countRecords()">
</td>
</tr>
</table>
</form>
</center>
</body></html>



I know, when you want to save "hard returns" in a cookie, you need to
escape() the value of a textarea when saving it, and here's how I've
modifided that in the code:

function setRec() {
strRecord = "";
for(i = 0; i < document.frm1.elements.length; i++) {
strRecord = strRecord + document.frm1.elements[i].value + ":";
}
arrRecords[recCount] = strRecord;
document.frm2.add.value = " NEW ";
document.cookie = "Records="+escape(arrRecords)+";expires=" +
expireDate.toGMTString();
}

Works fine but my big question is: where can I Unescape the value when
loading the cookie?

Hope anyone can help me out on this one,
Thanks for any insight!

Koen
Jul 20 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
JRS: In article <OA*****************@afrodite.telenet-ops.be>, seen in
news:comp.lang.javascript, koen colen <ko********@pandora.be> posted at
Fri, 4 Jul 2003 21:46:22 :-
expireDate = new Date;
expireDate.setDate(expireDate.getDate()+365);


That expires a day early 25% of the time.

expireDate.setMonth(expireDate.getMonth()+12);

That, at a cost of one more character, gives the right date without any
getYear/getFullYear concern.

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> JS maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/JS/&c., FAQ topics, links.
Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.