フォームにかかれている内容を上から順番にCookieに入れて
次にそのページに来たときに読みこれるようにしたいのですが、わからなくなってしまいました。
まず下記でJavaScriptに値を渡します。
onClick="saveCookie(this.form.elements[0].value,this.form.elements[1].value,this.form.elements[2].value)
次にJavaScriptで処理します。
-----------------------------------------------
xDay = new Date;
xDay.setYear(xDay.getYear() + 1);
xDay = xDay.toGMTString();
cook = new Array();
function saveCookie(value01,value02,value03){
cook[0] = value01;
cook[1] = value02;
cook[2] = value03;
cooks = escape(cook[0]);
i = 1;
while (cook[i]){
cooks += "%00" + escape(cook[i]);
i++;
}
document.cookie = "fat_cookie=" + cooks + "; expires=" + xDay;
}
function loadCookie(){
cooklng = document.cookie.length;
cook = document.cookie.split("; ");
cooks = "";
i = 0;
while (cook[i]){
if (cook[i].substr(0,11) == "fat_cookie="){
cooks = cook[i].substr(11,cook[i].length);
break;
}
i++;
}
cook = cooks.split("%00");
??? = unescape(cook[0]); ←ここがわかりません。
}
window.onload=loadCookie;
-----------------------------------------------
Cookieに保存して、またバラバラにするところまでは出来たのですが
最後にフォームに戻すところでわからなくなってしまいました。
色々試したのですがうまくいきません。
どなたかわかる方いらっしゃいましたら、
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
<form name="Form">などとフォームに名前をつけておき、
document.Form.elements[0].value = unescape(cook[0]);
とやれば戻せるのでは?
ラジオボタンやチェックボックス、リストなどの場合でしたら、ひとつひとつの値をcookieと比較して、一致する場合にcheckedやselectedにするって感じですかね。
私は要素名を使ってこんな感じで書いています。
テキストボックス、ラジオボタン、セレクトボックスのそれぞれの処理例です。
// Cookie出力
function getCookie(){
中略(クッキーを配列cookに取得)
document.Form.V1.value = unescape(cook[0]);
h = document.Form.V2.length;
for (i=0; i < j; i++) {
if (document.Form.V2[i].value == cook[1]) {
document.Form.V2[i].checked = true;
}
}
j = document.Form.V2.length;
for (k=0; k < j; k++) {
if (document.Form.V2[k].value == cook[2]) {
document.Form.V2[j].selected = true;
}
}
}
フォーム
<form name="Form" onsubmit="saveCookie(V1.value,V2.value,V3.value)">
<input type="text" name="V1">
<input type="radio" name="V2" value="1">
<input type="radio" name="V2" value="2">
<select name="V3">
<option value="1">1
<option value="2">2
<option value="3">3
<input type="submit" value="送信">
</select>
</form>
ご参考になりましたら幸いです。
この回答への補足
お礼を書いてから気づいたのですが、フォームの名前を付けずに下記でも出来ました。
document.forms[0].elements[0].value = unescape(cook[0]);
でも名前付けた方がわかりやすいですね。
ありがとうございます。出来ました!
いいとこまでは行ってたんですが、フォーム名なしで下記のようにしてたのがダメな原因でした。
名前付けたら出来ました。
document.this.form.elements[0].value = unescape(cook[0]);
教えてもらったままだとCookieが無い場合「undefined」と表示されていたので下記のようにしました。
if (cook[0]) document.form.elements[0].value = unescape(cook[0]);
ラジオボタンやチェックボックスの使い方もありがとうございます。参考にさせてもらいます。
また質問することがあるかと思いますが、その時はよろしくお願いします。
では失礼します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- 食べ物・食材 「Cook Do」の麻婆豆腐を作り、残った時、ジップロックに入れて冷蔵庫で保存しても大丈夫でしょうか 5 2022/09/07 08:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value.replaceがうまく動作しま...
-
テキストボックスに入力された...
-
プルダウン選択時、既に入力済...
-
CDOMailで本文テキストの文字コ...
-
jsで、配列内の文章を改行する...
-
value内に変数を入れたい
-
selectboxのoptionタグのvalue...
-
ラジオボタンと連動して文字列...
-
[Javascript]TEXTAREAで改行さ...
-
ユーザーフォームでの検索結果...
-
VBAをJavaScriptに変換したいです
-
フォームで入力した値を別のフ...
-
大量のselect要素のvalueを短い...
-
JavaScriptでセレクトボックス...
-
フォームの入力欄の未記入チェ...
-
jquery.cookie.jsを使用してい...
-
[C#]連想配列の中に配列を入れたい
-
日付選択のポップアップを今日...
-
visual sutudio2012でのコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
switchを使って四則演算のプロ...
-
VB.NET DateTimeの型について
-
クイズ作成:15個の問題から5個...
-
セレクトボックスの初期選択状...
-
C言語クイックソートの比較総回...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
ラジオボタンと連動して文字列...
-
setIntervalの間隔を途中で変更...
-
JAVASCRIPTで、ボタンを押した...
-
sessionStorageを調べています。
-
クリックの度に加算していくには?
-
マクロ オブジェクト変数With...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
おすすめ情報