• ベストアンサー

avaSprictを使ってcookieに保存できるようにしたい

JavaSprictで動かす計算式を作りました。 見よう見まねで初めて作ったので色々と変なところがあるかもしれませんが とりあえず動作はOKな状態になっています。 HTMLソースと、jsファイルの中身は下記のようになっているのですが このファイルのINPUT1とINPUT2、プルダウン1とプルダウン2の内容を JavaSprictを使ってcookieに保存できるようにしたいです。 jsファイルをどのようにすれば良いでしょうか? できれば、Saveボタンのようなものが無い状態で cookieを削除するまでずっと保存できる形にしたいです。 【HTMLソース】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <SCRIPT type="text/JavaScript" src="test.js"> </SCRIPT> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 10.0.0.0 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE> test </TITLE> </HEAD> <BODY onload="SetTarget()"> <P> test </P> <TABLE> <TBODY> <TR> <TD> INPUT1 </TD> <TD> <INPUT type="text" value="200" size="11" onkeyup="NumOnly(this);Calc()"> </TD> </TR> <TR> <TD> INPUT2 </TD> <TD> <INPUT type="text" value="500" size="11" onkeyup="NumOnly(this);Calc()"> </TD> </TR> </TBODY> </TABLE> <TABLE border="1"> <TBODY> <TR> <TD><SELECT onchange="Calc()"> <OPTION value=",">プルダウン1 </OPTION> <OPTION value="1.4">P1-1 </OPTION> <OPTION value="1.5">P1-2 </OPTION> </SELECT></TD> <TD><SELECT onchange="Calc()"> <OPTION value=",">プルダウン2 </OPTION> <OPTION value="1.2">P2-1 </OPTION> <OPTION value="1.3">P2-2 </OPTION> </SELECT></TD> </TR> </TBODY> </TABLE> <HR> <SELECT onchange="ListSel(this.value)"> <OPTION value=",,"> リスト </OPTION> <option value="100,30,100"> リスト2 </option> <option value="1220,60,80"> リスト3 </option> </SELECT> <TABLE border="0" cellpadding="3" cellspacing="1"> <TBODY> <TR> <TD bgcolor="#FFFFFF"> 1 <INPUT type="text" size="11" value="" onkeyup="NumOnly(this);Calc()"> </TD> <TD bgcolor="#FFFFFF"> 2 <INPUT type="text" size="11" value="" onkeyup="NumOnly(this);Calc()"> </TD> <TD bgcolor="#FFFFFF"> 3 <INPUT type="text" size="11" value="" onkeyup="NumOnly(this);Calc()"> </TD> </TR> </TBODY> </TABLE> <HR> <B> Ans </B> <TABLE border="1"> <TBODY> <TR> <TD>Ans1</TD> <TD>Ans2</TD> <TD>Ans3</TD> </TR> <TR> <TD><INPUT type="text" size="11"></TD> <TD><INPUT type="text" size="11"></TD> <TD><INPUT type="text" size="11"></TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.4

クッキーの読み出しと保存する関数のサンプルを示しただけで それを付け加えただけでは、クッキーの読み出し保存は行われません。 <input type="text" id="a" onChange="saveCookie('a',this.value,10)"> で保存期間10日で書き出し。 window.onload = function(){ document.getElementById('a').value=loadCookie('a'); }

その他の回答 (3)

noname#84373
noname#84373
回答No.3

function saveCookie( vn, v, dy ){ if(navigator.cookieEnabled) document.cookie=vn+'='+escape(v)+ ';expires='+new Date((new Date()).getTime()+dy*86400000).toGMTString();} function loadCookie(vn){ var r = '',o = document.cookie.split('; '); for (var i in o){ var c = o[i].split('='); if (c[0]==vn && c[1]!=''){ r = c[1]?unescape(c[1]):'';break; }} return r;}

operaster
質問者

補足

ご回答ありがとうございます。 test.jsの最後に、貼り付けて試してみたのですが IE6の環境ではcookieに保存されることはありませんでした。 (INPUT値変更、プルダウンリストを変更後、IE6を一端閉じ、再度htmlを開きましたが初期値に戻っていました) 変更して貼り付けなければならない箇所があるのでしょうか? 再度質問で申し訳ございませんが、引き続きアドバイスお願いいたします。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>Saveボタンのようなものが無い状態で 計算をしたときに、同時にクッキーに記録しておくとか、タイミングさえ見計らえばボタンを押さなくてもできます。 質問者さんの技量なら、構文さえわかれば、あとは必要に応じてアレンジできそうですから、以下を参考になされば、実装は比較的簡単かと  http://www.tohoho-web.com/wwwcook.htm

operaster
質問者

お礼

ご紹介ありがとうございます。 見よう見まねで作ったもので、知識が全くといって良いほど無いので 理解できるか不安ですが、参考にさせていただきます。

回答No.1

肝心のJavaSprictの部分が抜けていますよ

operaster
質問者

補足

jsファイルの中身が、文字数制限の関係で記載できませんでした・・すみません。 タイトルも頭にJが抜けています、重ね重ね申し訳ございません。 こちらに記載させていただきます 【test.jsの中身】 var _in1, _in2, _p1, _p2, _list1, _list2, _list3, _ans1, _ans2, _ans3; function SetTarget(){ var Ipt, Slc; Ipt=document.getElementsByTagName('input'); Slc=document.getElementsByTagName('select'); _in1=Ipt[0]; _in2=Ipt[1]; _p1=Slc[0]; _p2=Slc[1]; _list1=Ipt[2]; _list2=Ipt[3]; _list3=Ipt[4]; _ans1=Ipt[5]; _ans2=Ipt[6]; _ans3=Ipt[7]; } function Calc(){ var in1,in2,p1,p2,list1,list2,list3; in1=_in1.value-0; in2=_in2.value-0; p1=_p1.value-0; p2=_p2.value-0; list1=_list1.value-0; list2=_list2.value-0; list3=_list3.value-0; //計算 all=(in1>0&&in2>0)?Math.floor((in1-48)*20+in2):''; ans1=(all>0)?Math.floor((all-list2)*(list3*0.01)):''; _ans1.value=ans1; ans2=(all>0&&p1>0&&list2>0&&list3>0)?Math.floor((all*p1-list2)*(list3*0.01)):''; _ans2.value=ans2; ans3=(all>0&&p2>0&&list2>0&&list3>0)?Math.floor((all*p2-list2)*(list3*0.01)):''; _ans3.value=ans3; } /* alert(); */ function ListSel(x){ var P=x.split(','); _list1.value =P[0]; _list2.value=P[1]; _list3.value=P[2]; Calc(); } function NumOnly(x){ var u=x.value; x.value=u.replace(/[^0-9]/,''); }

関連するQ&A

  • selectでinputの表示を変えたい

    セレクトを選択した時に、inputの一部をdisabledにし、同時にinputの背景色を変更したいと思っています。 ----------------------------------------------------------------------- 現在はこんな感じです。 function menuLink(linkLoc) { if(linkLoc !="") { ifrm.location.href=linkLoc;} } --- セレクト1 <SELECT style="WIDTH: 130px" onchange="menuLink(this.options[this.selectedIndex].value)"> <OPTION value="11.html">1</OPTION> <OPTION value="22.html">2</OPTION> <OPTION value="33.html">3</OPTION> セレクト2 <SELECT style="WIDTH: 130px" onchange="menuLink(this.options[this.selectedIndex].value)"> <OPTION value="44.html">1</OPTION> <OPTION value="55.html">2</OPTION> <OPTION value="66.html">3</OPTION> セレクト3 <SELECT style="WIDTH: 130px" onchange="menuLink(this.options[this.selectedIndex].value)"> <OPTION value="77.html">1</OPTION> <OPTION value="88.html">2</OPTION> <OPTION value="99.html">3</OPTION> (実際にはもっと多くのセレクトがあります) <TR> <TD><INPUT type="text" name="aa" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="ba" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="ca" size="10" maxlength="2"></TD></TR> <TR> <TD><INPUT type="text" name="ab" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="bb" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="cb" size="10" maxlength="2"></TD></TR> <TR> <TD><INPUT type="text" name="ac" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="bc" size="10" maxlength="2"></TD> <TD><INPUT type="text" name="cc" size="10" maxlength="2" /></TD></TR> <TR> <TD><INPUT type="text" name=da readOnly value=0 size=10></TD> <TD><INPUT type="text" name=ea readOnly value=0 size=10></TD> <TD><INPUT type="text" name=fa readOnly value=0 size=10></TD></TR> <TR> <TD><INPUT type="text" name=db readOnly value=0 size=10></TD> <TD><INPUT type="text" name=eb readOnly value=0 size=10></TD> <TD><INPUT type="text" name=fb readOnly value=0 size=10></TD></TR> <TR> <TD><INPUT type="text" name=dc readOnly value=0 size=10></TD> <TD><INPUT type="text" name=ec readOnly value=0 size=10></TD> <TD><INPUT type="text" name=fc readOnly value=0 size=10></TD></TR> ----------------------------------------------------------------------- セレクト1のどれかを選択した時に、インプットのaa,ba,da,eaをdisabledにし、同時にaa,ba,da,eaの背景色を変更 セレクト2のどれかを選択した時に、インプットのab,bb,db,ebをdisabledにし、同時にab,bb,db,ebの背景色を変更 という感じにしたいのですが、可能でしょうか? 可能であれば書き方を教えていただけると助かります。 よろしくおねがいします。

  • セレクトメニューで選んだ値を同じページの別の場所へ表示する方法

    セレクトメニューで選んだ値を同じHTML内の別の箇所へ表示させる方法がわかりません。 どなたか分かる方が居ましたら、回答お願い致します。 下記のような例です。 <BODY> <FORM method="post" Name="Application" action="bin/regist.cgi" onSubmit="return Check()"> <input type="hidden" name="subject" value="申し込み"><input type="hidden" name="nexthtm" value="index.html"> <CENTER> <SELECT name="RATE" size="1" tabindex="1"> <OPTION>▼選択</OPTION> <OPTION value="ドル">ドル</OPTION> <OPTION value="円" selected>円</OPTION> </SELECT><BR><BR> <TABLE border="0" cellpadding="0" cellspacing="0"> <TBODY> <TR> <TD width="90" align="center"><INPUT size="10" type="text" name="PRICE" tabindex="6" onChange="CheckTxt1(this.value);"></TD> <TD></TD> <TD>ここに選んだ単位を表示したい</TD> </TR> </TBODY> </TABLE> <BR> <TABLE border="0"> <TR><TD colspan="3" align="center"> <INPUT type="submit" value=" 送 信 " tabindex="45">    <INPUT type="reset" value=" リセット " tabindex="46"> <BR> </TD></TR> </TABLE> </CENTER> </FORM> </BODY>

    • ベストアンサー
    • HTML
  • 初歩的な質問です、長文ですいませんが困っております。

    初めてHP製作で掲示板を作りたいと思い、本(Perl/CGI辞典)を読みながら悪戦苦闘中です。まずは本のスレッド掲示板を作たのですが、なぜか出力されません。PERLのチェックはHPでやって異常ありませんでしたが、なぜか「500Internal Server Error」になってしまいます。まずは出力部分と思い抜粋して見たのですが、これまた出力されません。以下にその部分を貼り付けますので、どなたかお教え願えないでしょうか? #!C:\perl\bin\perl -w print<<HTML_EOF; Content-type:text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="ja"> <HEAD><TITLE>$bbstitle</TITLE> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY BGCOLOR="${bgcolor}"> <BR> <B>$bbstitle</B><BR> <FORM ACTION="${cginame}" METHOD=POST> <TABLE WIDTH='90%'> <TR> <TD WIDTH=30>名前</TD> <TD><INPUT TYPE="TEXT" NAME="name" SIZE=30 VALUE="$name"></TD> </TR> <TR> <TD>Mail:</TD> <TD><INPUT TYPE="TEXT" NAME="mail" SIZE=30 VALUE="$mail"></TD> </TR> <TR> <TD>URL:</TD> <TD><INPUT TYPE="TEXT" NAME="url" SIZE=60 VALUE="$url"></TD> </TR> <TR> <TD>TITLE:</TD> <TD><INPUT TYPE="TEXT" NAME="title" SIZE=60></TD> </TR> <TR> <TD></TD> <TD><TEXTAREA NAME="comm" COLS=60 ROWS=6></TEXTAREA></TD> </TR> </TABLE> <INPUT TYPE="SUBMIT" VALUE="投稿"> <INPUT TYPE="RESET" VALUE="クリア"></FORM> <BR> </BODY> </HTML> HTML_EOF

    • ベストアンサー
    • CGI
  • 追加、削除について

    以前、行の追加と削除で質問をした者です。 その時、innerHTMLでのやり方を教わりましたが appendChild、removeChildという、メソッドでも 同じことができるのか教えてもらいたいです。 追加ボタンを押すと左のNOが、3,4と下に増える 削除ボタンを押すと戻るというやり方です。 <sample.html> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> <title>列追加、削除</title> </head> <body> <table border=1> <col width="150" align="center" style="font-weight:bold"><col span="3"> <tr> <th >No</th> <th >列1</th> <th >列2</th> <th >列3</th> </tr> <tr> <td>1</td> <td><input type="text" name="sankou" value="" size="26" ></td> <td><input type="text" name="sankou" value="" size="26" ></td> <td><input type="text" name="sankou" value="" size="26" ></td> </tr> <tr> <td>2</td> <td><input type="text" name="sankou" value="" size="26" ></td> <td><input type="text" name="sankou" value="" size="26" ></td> <td><input type="text" name="sankou" value="" size="26" ></td> </tr> </table> <table> <tr> <td ><input type="button" VALUE="追加"></td > <td ><input type="button" VALUE="削除"></td > </tr> </table> </body> </html>

  • 追加、削除のやり方を教えてください。

    追加ボタンを押すと下に列が増えていき削除ボタン を押すと上に削除するやり方をJavaScriptで教えて いただきたいと思います。 <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> <title>列追加、削除</title> </head> <body> <table border=1> <tr> <th>列1</th> <th>列2</th> <th>列3</th> <th>列4</th> </tr> <tr> <td><input type="text" name="retsu1" value="" size="20" maxlength="10" ></td> <td><input type="text" name="retsu2" value="" size="20" maxlength="10"></td> <td><input type="text" name="retsu3" value="" size="20" maxlength="10"></td> <td><input type="text" name="retsu4" value="" size="20" maxlength="10"></td> </tr> </table> <td ><input type="button" VALUE="追加" ></td > <td ><input type="button" VALUE="削除" ></td > </body> </html>

  • 追加ボタンでテーブルの行を追加する

    情報登録する画面で既存テーブル(可変のテーブルにしたい)に 情報を追加するのに「追加ボタン」を押すと新規の行が追加されるように したいのですが、どのようにすればいいのでしょうか? テストで以下のようにHTMLを書いているのに対して いい方法を教えてください。 ーーーーーーーーーーーーーーーー <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> <TITLE>行追加</TITLE> </HEAD> <BODY> <TABLE BORDER="1"> <TR> <TH>タイトルA</TH> <TH>タイトルB</TH> </TR> <TR> <TD>><INPUT TYPE="text" SIZE="18" MAXLENGTH="18" NAME="A" VALUE=""><//TD> <TD><INPUT TYPE="text" SIZE="18" MAXLENGTH="18" NAME="B" VALUE=""></TD> </TABLE> <INPUT TYPE="button" VALUE="行追加"> </CENTER> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • 2つのフォームに値を入れて計算

    2つのフォームを作り、その2つを計算したいのですがオブジェクトの指定の仕方がエラーが出てしまい(オブジェクトを指定してくださいと出ます)わかりません。 どうか教えてください。 ちなみにforなどは使わなくても大丈夫ですのでよろしくお願いします。 function kei() { var kei1 = 0; kei1=eval(document.A.a11.value) * eval(document.B.b21.value) ; document.C.c11.value = kei1; } <table border = 1> <form name="A"> <tr> <td> <input type = "text" size = 5 name = "a11"></input> </td> <td> <input type = "text" size = 5 name = "a12"></input> </td> <td> <input type = "text" size = 5 name = "a13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a21"></input> </td> <td> <input type = "text" size = 5 name = "a22"></input> </td> <td> <input type = "text" size = 5 name = "a23"></input> </td> </tr> </form> </table> <table boeder = 1> <tr> <input type = "button" onClick="kei()" value = "×"></input> </tr> </table> <table border = 1> <form name="B"> <tr> <td> <input type = "text" size = 5 name = "b21"></input> </td> <td> <input type = "text" size = 5 name = "b22"></input> </td> <td> <input type = "text" size = 5 name = "b23"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b31"></input> </td> <td> <input type = "text" size = 5 name = "b32"></input> </td> <td> <input type = "text" size = 5 name = "b33"></input> </td> </tr> </form> </table> <table border = 1> <form name="C"> <tr> <td> <input type = "text" size = 5 name = "c11"></input> </td> <td> <input type = "text" size = 5 name = "c12"></input> </td> <td> <input type = "text" size = 5 name = "c13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c21"></input> </td> <td> <input type = "text" size = 5 name = "c22"></input> </td> <td> <input type = "text" size = 5 name = "c23"></input> </td> </tr> </form> </table>

  • ラジオボタンでの表示の切替方法

    2つのラジオボタンの切替によって、表示の切替を行いたいです。 例えば、Aを選択すると(1)の入力フォームが表示され、Bを選択すると(2)が表示したいです。初期表示はAが選択された時と同じ内容となります。 <table align="center" border="0" cellpadding="0" cellspacing="0"> <tr><td><form name="Quick1"> <tr><td>選択</td> <td> <input type="radio" name="A" value="1" checked>A  <input type="radio" name="B" value="2">B  </td></tr> <tr> <td>(1)</td> <td> <input type="text" size="6" maxlength="5" name="text1" value="">- <input type="text" size="6" maxlength="5" name="text2" value="">- <input type="text" size="6" maxlength="5" name="text3" value=""> </td></tr> <tr> <td>(2)</td> <td> <input type="text" name="text7" size="43" value=""> </td></tr> </table></form></td></tr></table> すみませんが、よろしくお願い致します。

  • javascriptによる計算

    テキストボックス「a1~6」の値とテキストボックス「b1~6」に入力された値を足し算してテキストボックス「c1~6」(例…c[i] = a[i] + b[i])を計算するJavaScriptを作成しているのですが、結果がundefinedになってしまい上手くいきません。どうやったら動くのかどうかご教授ください。 以下ソース↓ <script language ="JavaScript"> function plus() { var intResult = 0; for (i=1; i<=6; i++){ intResult[i] = 0; if (!isNaN(document.forms["A"].all["a"+i].value) && !isNaN(document.forms["B"].all["b"+i].value)){ intResult[i] += parseInt(document.forms["A"].all["a"+i].value); intResult[i] += parseInt(document.forms["B"].all["b"+i].value); } <table border = 1> <tr> <td> <table border = 1> <tr> <td> <form name="A"> <input type = "text" size = 5 name = "a1"></input> </td> <td> <input type = "text" size = 5 name = "a2"></input> </td> <td> <input type = "text" size = 5 name = "a3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a4"></input> </td> <td> <input type = "text" size = 5 name = "a5"></input> </td> <td> <input type = "text" size = 5 name = "a6"></input> </form> </td> </tr> </table> </td> <td> <table boeder = 1> <tr> <input type = "button" onClick="plus()" value = "+"></input> </tr> </table> </td> <td> <table border = 1> <tr> <td> <form name = "B"> <input type = "text" size = 5 name = "b1"></input> </td> <td> <input type = "text" size = 5 name = "b2"></input> </td> <td> <input type = "text" size = 5 name = "b3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b4"></input> </td> <td> <input type = "text" size = 5 name = "b5"></input> </td> <td> <input type = "text" size = 5 name = "b6"></input> </form> </td> </tr> </table> </td> </tr> </table> 答え <form name = "C"> <table border = 1> <tr> <td> <input type = "text" size = 5 name = "c1"></input> </td> <td> <input type = "text" size = 5 name = "c2"></input> </td> <td> <input type = "text" size = 5 name = "c3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c4"></input> </td> <td> <input type = "text" size = 5 name = "c5"></input> </td> <td> <input type = "text" size = 5 name = "c6"></input> </td> </tr> </table> </form> </body> document.C.all["c"+i].value = intResult[i]; } } </script>

  • VBAでWebページに入力&ボタンクリック

    URLがhttp://xxx.com/のページで次のようなフォームのときExcelで自動入力クリックするマクロを作りたいです。 <input type="hidden" name="room" value="aaaaa"/> <a name="regist" id="regist">総登録数</a> <table width="402" border="1"> <tr> <th align="center" colspan="2"><div align="left"><big>登録ページ</big></div></th> </tr> <tr> <td colspan="2">&nbsp;&nbsp;&nbsp;name <input type="text" size="20" name="name" value="" maxlength="20"> &nbsp;&nbsp;&nbsp;Email <input type="text" size="20" name="email" value=""> &nbsp;&nbsp;</td> </tr> <tr> <td align="center">pass</td> <td><input type="text" size="20" name="pw" maxlength="12" value=""></td> </tr> <tr> <td align="center">category</td> <td><select size="1" name="junle"> <option value="pp" selected="selected">カテゴリ選択</option> <option value="0">その1</option> <option value="1">その2</option> </select></td> </tr> <tr> <td align="center">title</td> <td><input type="text" size="55" name="title" maxlength="25" value=""></td> </tr> <tr> <td align="center">URL</td> <td><input type="text" size="55" name="url"></td> </tr> <tr> <td align="center">intro</td> <td><input type="text" name="comment" size="55" maxlength="50" value=""></td> </tr> <tr align="center"> <td><br></td> <td><input type="submit" name="mode" value="登録"> <input type="reset" value="クリア"></td> </tr> </table> 入力する内容は1行目のA,B,C・・にname,email,pass・・・が順番にそれぞれ入っています。

専門家に質問してみよう