フォーム入力内容をクッキーに保存(document.cookie, escape, unescape)
<html>
<head>
<title>フォーム入力内容をクッキーに保存</title>
<script language="JavaScript">
<!--
cookiename = "form"; // クッキー名
life = 30; // クッキーの保存日数
element = new Array("name", "mail"); // 保存するエレメント名
function getcookie() { // クッキー読み込み
cookie = "";
cookie1 = document.cookie.split("; "); // "; "で分割
for(i = 0 ; i < cookie1.length ; i++) {
cookie2 = cookie1[i].split("="); // "="で分割
if(cookie2[0] == cookiename) {
cookie = cookie2[1];
}
}
if(cookie != "") {
cookie3 = cookie.split("&"); // "&"で分割
for(i = 0 ; i < element.length ; i++) {
for(j = 0 ; j < document.form.length ; j++) {
if(document.form.elements[j].name == element[i]) {
document.form.elements[j].value = unescape(cookie3[i]);
break;
}
}
}
}
}
function setcookie() { // クッキー保存
today = new Date(); // 今日の日時
expires = new Date(); // クッキーの有効期限
expires.setTime(today.getTime() + (life * 1000 * 60 * 60 * 24));
mon = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
week = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
cookie = cookiename + "="; // クッキーデータ作成
for(i = 0 ; i < element.length ; i++) {
for(j = 0 ; j < document.form.length ; j++) {
if(document.form.elements[j].name == element[i]) {
cookie += escape(document.form.elements[j].value) + "&";
break;
}
}
}
cookie += ";";
cookie += "expires=";
cookie += week[expires.getDay()] +",";
cookie += expires.getDate() +"-";
cookie += mon[expires.getMonth()] +"-";
cookie += expires.getFullYear() +" ";
cookie += expires.getHours() +":";
cookie += expires.getMinutes() +":";
cookie += expires.getSeconds() +";";
document.cookie = cookie; // クッキー書き込み
}
//-->
</script>
</head>
<body onLoad="getcookie()">
<form name="form" action="../../sample/sample.cgi" method="POST" onSubmit="setcookie()">
名前:<br><input type="text" name="name" size="100" value=""><br><br>
メール:<br><input type="text" name="mail" size="100" value=""><br><br>
本文:<br><textarea name="text" cols="70" rows="10"></textarea><br><br>
<input type="submit" value=" 送 信 ">
<input type="reset" value=" リセット "><br>
<small>※名前・メールは一度送信すると次回から自動的に入力されます。</small>
</form>
</body>
</html>
〔 実行する 〕