- ベストアンサー
複数のcookieでの保存
- 初心者のためうまくいかないcookie保存の試みについて質問しています。具体的には、フォームに記入・チェックした内容を選択した保存ボタンに対応させて複数のcookieに保存したいと考えています。
- フォームの数は数十個以上あり、記入内容は数字のみ。また、別のスクリプトで入力内容を使用するため、競合の問題もあるかもしれません。
- 初心者が作成したスクリプトを載せていますが、構文や説明が不足しているかもしれません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
nameよりidがいいね。ちょっと不都合がありそうだけど取り急ぎ! <HTML> <BODY> <form id="myForm">テキスト1<BR> <INPUT size="20" type="text" maxlength="10" value="0" name="a"><BR> <BR> セレクト1<BR> <SELECT size="2" name="b"> <OPTION value="0" selected>0</OPTION> <OPTION value="1">1</OPTION> <OPTION value="2">2</OPTION> <OPTION value="3">3</OPTION> <OPTION value="4">4</OPTION> <OPTION value="5">5</OPTION> </SELECT><BR> <BR> セレクト2<BR> <SELECT name="c"> <OPTION value="0" selected>0</OPTION> <OPTION value="1">1</OPTION> <OPTION value="2">2</OPTION> <OPTION value="3">3</OPTION> <OPTION value="4">4</OPTION> <OPTION value="5">5</OPTION> </SELECT><BR> <BR> チェック1<BR> <INPUT type="checkbox" name="d" value="0"><BR> <BR> ラジオ1<BR> <INPUT type="radio" name="e" value="0"><BR> <INPUT type="radio" name="e" value="1"><BR> <BR> <BR> <SELECT name="selectsave"> <OPTION value="v1" selected>保存1</OPTION> <OPTION value="v2" >保存2</OPTION> <OPTION value="v3" >保存3</OPTION> <OPTION value="v4" >保存4</OPTION> <OPTION value="v5" >保存5</OPTION> </SELECT><BR> <BR> <INPUT type="button" value="セーブ" name="save" onclick="set_cookie()"><br> <INPUT type="button" value="ロード" name="lord" onclick="get_cookie()"> </form> <input type="text" size="50" id="sample"> <script language="JavaScript"> function set_cookie(){ o=document.getElementById('myform'); var v =[]; v[0] = o.a.value; v[1] = o.b.value; v[2] = o.c.value; v[3] = o.d.checked; v[4] = o.e[0].checked; v[5] = o.e[1].checked; saveCookie( o.selectsave.value, v.join('/'),30); document.getElementById('sample').value=v.join('/'); } function get_cookie(){ var o=document.getElementById('myform'); var GET=loadCookie(o.selectsave.value).split('/'); document.getElementById('sample').value=loadCookie(o.selectsave.value);//sapmle document.getElementById('myform').a.value = GET[0]; setvalue(document.getElementById('myform').b, GET[1]); setvalue(document.getElementById('myform').c, GET[2]); document.getElementById('myform').d.checked = (GET[3]=='true')? true:false; document.getElementById('myform').e[0].checked = (GET[4]=='true')? true:false; document.getElementById('myform').e[1].checked = (GET[5]=='true')? true:false; } function setvalue(o,v){ for(i=0;i<o.length;i++) if(o[i].value==v) o[i].selected=true; } function saveCookie( vn, v, dy ){ if(navigator.cookieEnabled) document.cookie = vn+ '='+ v+ ';expires='+ new Date((new Date()).getTime()+dy*24*3600000).toGMTString(); } function loadCookie(vn){ var rt=''; if( vn && document.cookie ) { var v = document.cookie.split(';'); for(i in v){ v[i].match(/^\s*(.*)=(.*)$/); if( RegExp.$1 == vn) { rt = RegExp.$2; break; } } } return rt; } </script> </BODY> </HTML>
お礼
さっそくの回答ありがとうございました。 これです、これがしたかったんです。 書いていただいたスクリプトは初心者には難しくて 本を片手になんとなくしか理解できませんが、 やっぱり複雑なスクリプトじゃないとダメ だったんですね。 勉強になりました。 ありがとうございました。