// -----------------------------------------------------// // SAVE FORM FIELD SELECTIONS IN COOKIES // // formcookie_saverestore.js // // Written by Tony Davis, T. Davis Consulting, Inc. // // Date written: September 27, 2005 // // Email: tony@tdavisconsulting.com // // Web site: http://www.tdavisconsulting.com // // -----------------------------------------------------// // instructions: // ------------ // Change
// to and // Change // TO // see a working example at: http://www.tdavisconsulting.com/formcookie // // // ------------------------------------------------ // This function will concatentate all the fields in // in the form into one string, delimited by a PIPE // symbol, into one cookie. The cookie name is the // same name as the form name. ALL fields are saved. // ------------------------------------------------ // function saveSelections(frm) { var setvalue; var fieldType; var index; var formname = frm.name; // Expire cookie in 999 days. var today = new Date(); var exp = new Date(today.getTime()+999*24*60*60*1000); var string = "formname=" + formname + "|"; var cookieName = formname; //alert(exp); //alert(formname); var n = frm.length; for (i = 0; i < n; i++) { e = frm[i].name; fieldValue = frm[i].value; fieldType = frm[i].type; //alert(e); //alert(fieldType); //alert(fieldValue); // // RADIO BUTTON // if (fieldType == "radio") { //alert(frm.elements[e].length); for (x=0; x < frm.elements[e].length; x++) { if (frm.elements[e][x].checked) { index = x } } string = string + index + "\|"; } // // TEXT, TEXTAREA, and DROPDOWN // if ((fieldType == "text") || (fieldType == "textarea") || (fieldType == "select-one")) { string = string + frm.elements[e].value + "\|"; //alert("text"); } // // CHECKBOX // if (fieldType == "checkbox") { if (frm.elements[e].checked==true) { var setvalue = "1"; } if (frm.elements[e].checked==false) { var setvalue = "0"; } string = string + setvalue + "\|"; //alert("checkbox"); } // // HIDDEN field // if (fieldType == "hidden") { string = string + frm.elements[e].value + "\|"; //alert("text"); } } //alert(string); setCookie(cookieName, string, exp); } // // LOAD FORM FIELD SELECTIONS FROM SAVED COOKIES // function loadSelections(frm) { var e; var z; var x; var cookieName; var fieldArray; var fieldValues; var fieldValue; var formname = frm.id; // Retrieve form elements from cookie and split into array. cookieName = formname; fieldValues = getCookie(cookieName); fieldArray = fieldValues.split("\|"); //alert(fieldArray); //alert(fieldArray[0]); //alert(fieldArray[1]); //alert(fieldArray[2]); //alert(fieldArray[3]); var n = frm.length; for (i = 0; i < n; i++) { e = frm[i].name; z = i; z++; var fieldType = frm[i].type; var fieldValue = fieldArray[z]; // // TEXT, TEXTAREA, and DROPDOWN // if ((fieldType == "text") || (fieldType == "textarea") || (fieldType == "select-one")) { frm.elements[e].value = fieldValue; //alert(e); //alert(fieldValue); } // CHECKBOX // if (fieldType == "checkbox") { fld_checkbox = fieldValue; if (fld_checkbox == "1") { frm.elements[e].checked = true; } } // RADIO BUTTON // if (fieldType == "radio") { x = fieldValue; //alert(x); frm.elements[e][x].checked = true; } // // HIDDEN field // if (fieldType == "hidden") { frm.elements[e].value = fieldValue; } } } /// COOKIE FUNCTIONS function setCookie(name, value, expires, path, domain, secure) { document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } function getCookie(name) { var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) return null; } else { begin += 2; } var end = document.cookie.indexOf(";", begin); if (end == -1) { end = dc.length; } return unescape(dc.substring(begin + prefix.length, end)); }