• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セレクトメニューをキーにCookieを取得したいんですが)

セレクトメニューをキーにCookieを取得したいんですが

noname#1785の回答

  • ベストアンサー
noname#1785
noname#1785
回答No.1

SelectBoxの値の取り方が違いますよ。(^^;; 以下、formが0番目の場合として書くと、 function getValue(){ //値を取得する var va1 = document.forms[0].text1[document.forms[0].text1.selectedIndex].value; var va2 = document.forms[0].text2[document.forms[0].text2.selectedIndex].value; //クッキーに書き込む setCookie("text1",va1); setCookie("text1",va2); } IEだったら単なるValueでも値が取れる場合があるんですけどね。 ただ、全部のブラウザで有効ではなかったと思います。 このgetValue()というのは、SelectBoxのonChangeイベントで動きますよね? この時、値を取得するのはtext1とtext2の両方という事でいいんでしょうか? もし、各一つづつのセレクトボックスを「必ず」動かす必要があるのであれば、いちいち両方の値を操作しなくても、それぞれで自分の値のみCookieを食べさせれば良いと思います。 JavaScriptとCookieに関して、参考になるサイトをご紹介しておきますね。

参考URL:
http://tohoho.wakusei.ne.jp/www.htm
obahiro
質問者

お礼

ありがとうございますm(_ _)m HTMLだと、ネスケの場合IEよりきちんと書かなければならないことは知っていたんですけど、Javascriptも同じなんですね。適当ににというわけではないんですけど(^^; ですが、いつもHIROYOさんにはお世話になっておりほんとたすかっています。 おかげさまで、もう少しで完了しそうです。が、まだロジックで分からないことが出てくると思いますが、その時は、よろしくお願いします。

関連するQ&A

  • セレクトメニューに応じたdivタグの内容

    javascriptの質問です。フォーム内のセレクトメニューに応じて表示する配列を選び、複数のdivタグ内に表示したいと思っています。getElementByIdでセレクトメニューにIdをつけて呼び出し、selectedIndexでfunction()をonloadという事ですすめています。 複数のdivタグ内に書き出すのにinnerHTMLを使うんだなというところまでは理解しているつもりですが、上手く動きませんので、どなたかご存知の方にご教授願えればと思います。 <html> <head> <script type="text/javascript"> window.onLoad = function(){ document.getElementById("selected").onChange = function(){ var planTitle = this.selectedIndex; var object = document.getElementById("derection"); var TextData = [[],["text","text"],["text","text"]]; for (var i=0; i<TextData[planTitle].length; i++){ document.write(TextData[i]); } } } </script> </head> <body> <form action=""> <select id="selected"> <option value="title01">title01</option> <option value="title02">title02</option> <option value="title03">title03</option> </select> <div id="direction"></div> <div id="direction"></div> </form> </body> </html>

  • 条件を付けたセレクトメニューの値の取得

    JavaScriptで下記の流れの入力フォームを作成しています。 (1)一つ目のセレクトメニューで選択した項目に応じて、もう1つのセレクトメニューの内容を変更する (2)submitボタンを押すと、次のWeb画面で選択した内容を表示する (1)については色々なところのサンプルコードを参考にしつつ、なんとか作成できました。 しかし、(2)は値の受け渡しがうまく出来ずに頭を抱えています。 (unitの値もgroupの値も共に空欄が返ってくる) ◆(1)のコード: 例えばUnit1を選択すると、グループ1(1-1~1-4)が表示され、 Unit2を選択すると、グループ2(2-1~2-4)がセレクトメニューに表示されるというものです。 <TR><TD> <TD><B>Unit</B><BR>  <select name="unit" onchange="groupSet()"> <option value="">-選んでください-</option> <option value="">Unit1</option> <option value="">Unit2</option> <option value="">Unit3</option> </select> <TD><B>Group</B><BR>  <SELECT NAME="group"> <option value="">-選んでください-</option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> </select> <script> //グループ1の配列 var group1_list=new Array( "-選んでください-","1-1","1-2","1-3","1-4"); //グループ2の配列 var group2_list=new Array( "-選んでください-","2-1","3-2","3-3","3-4"); //グループ3の配列 var group3_list=new Array( "-選んでください-","4-1","4-2","4-3","4-4"); function buSet(){ //オプションタグを連続して書き換える for ( i=1; i<5; i++ ){ //選択分岐 switch (document.selbox.unit.selectedIndex){ case 0: document.selbox.bu.options[i].text="";break; case 1: document.selbox.bu.options[i].text=group1_list[i];break; case 2: document.selbox.bu.options[i].text=group2_list[i];break; case 3: document.selbox.bu.options[i].text=group3_list[i];break; } } document.selbox.bu.selectedIndex=0;} </script> ◆(2)のやりかた request.getParameter("unit")およびrequest.getParameter("group")で値を取得し、 画面への表示&ファイルへの保存を行っていますが、選択したgroup○○○の項目ではなく、空欄を取得しているようなのです・・・ どなたか知恵を貸してください。よろしくお願いします。

  • セレクトメニューで選択された項目に応じて、別のセレクトメニューの内容を変更する場合について

    アドバイスお願いします。 ページロード時、最初ののセレクトメニューは「国を選択してください」が選択された状態となりますが、次のセレクトメニューが空白になってしまいます。 これを最初のメニューと同じく「国を選択してください」と表示させるには、どうしたらよろしいでしょうか? 【HTML】 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>JavaScript</title> <link rel="stylesheet" type="text/css" href="main.css" media="all"> <script type="text/javascript" src="main.js"></script> </head> <body> <form action="./enq.cgi" method="get" id="mainForm" name="mainForm"> <select id="selMain"> <option value="">国を選択してください</option> <option value="jp">日本</option> <option value="usa">アメリカ</option> </select> <select id="selSub">国を選択してください</select> </form> </body> </html> 【main.js】 window.onload = function(){ document.getElementById("selMain").onchange = function(){ var selNo = this.selectedIndex; var selObj = document.getElementById("selSub"); var optionData = [[ ],[ { text:"東京", value:"tokyo"}, { text:"大阪", value:"osaka"}, { text:"名古屋", value:"nagoya"} ],[ { text:"ニューヨーク", value:"ny"}, { text:"ロサンゼルス", value:"la"} ] ]; while(selObj.hasChildNodes()) { selObj.removeChild(selObj.firstChild); } for (var i=0; i<optionData[selNo].length; i++){ selObj.options[i] = new Option(optionData[selNo][i].text, optionData[selNo][i].value); } } } また、質問にありますようなセレクトメニューを実装する場合、JavaScriptとAJAX、どちらが適したものと言えるのでしょうか?

  • セレクトメニューの値を読み出す方法

    セレクトメニューのoptionに設定した値を読み出したいのですがうまくいきません。間違っている部分をご指摘いただけませんでしょうか。よろしくお願いいたします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title></title> <script type="text/javascript"> <!-- function checkm(fObj){ price = fObj.options[fObj.selectedIndex].value; } function writePrice() { document.write(price);//通常価格表示 document.write(mprice);//会員価格表示 } //--> </script> </head> <body> <script type="text/javascript"> <!-- var price = '20000'; //通常価格 //--> </script> <script type="text/javascript"> <!-- var mprice = price * 0.9; //会員価格 writePrice(); //--> </script> <form> <select onchange="checkm(this)"> <option value="20000">シルバー</option> <option value="30000">ゴールド</option> <option value="40000">プラチナ</option> </select> </form> </body> </html>

  • セレクトメニューで

    セレクトメニューで フレームを使った、複数のセレクトメニューで 今の状態だと、上のセレクトメニューは問題ないのですが 下のセレクトメニューで選択すると、上のセレクトメニューの「更新」になるだけに なってしまいます。 要所の所だけ、記載しますので間違ってるところを教えてください。 <script type="text/javascript"> <!-- // 設定開始 var target = "right"; // 設定終了 function jump(){ var url = document.form1.select1.options[document.form1.select1.selectedIndex].value; if(url != "" ){ if(target == 'top'){ top.location.href = url; } else if(target == 'blank'){ window.open(url, 'window_name'); } else if(target != ""){ eval('parent.' + target + '.location.href = url'); } else{ location.href = url; } } } // --> </script> </head> <body> <TABLE border="0"> <TBODY> <TR> <TD><form action="#" name="form1"> <select name="select1" onChange="jump()"> <OPTION>  メニュー</OPTION> </select> </form></TD> </TR> <TR> <TD><form action="#" name="form2"> <select name="select2" onChange="jump()"> <OPTION>  メニュー</OPTION> </select> </form></TD>

  • セレクトメニューでリンクの際、targetの指定の方法

    2つのフレーム(上下)で分けたページで、上(top)・下(bottom)というフレーム名にしています。 上(top)にセレクトメニューを設置しリンクをはって、下(bottom)にhtmlを表示したいのですが、target="bottom"というのは、どこに入れたらいいのか。。。いろいろやってみたのですが、全く分かりません。 お分かりになる方、どうぞ教えて下さい。よろしくお願いいたします。 <SCRIPT type="text/JavaScript"> <!-- function moveUrl(selection){ var url=selection[selection.selectedIndex].value; if(url!=""){ location.href=url; } } //--> </SCRIPT> <FORM><SELECT onChange="moveUrl(this)"> <OPTION value="" selected">メニュー選択 </OPTION> <OPTION value="main1.html">概要 </OPTION> <OPTION value="main2.html">仕組み </OPTION>

  • 大量のselect要素のvalueを短い文で取得

    select要素が100個あり、<script>側でoption要素のvalueをそれぞれ取得する場合、 下記のようにselect要素の数だけ変数で指定する方法以外に、 もっと短くしてパフォーマンスを上げる方法はありますでしょうか。 <select name="c100"> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select> </form> <input type="button" value="はい" onclick="function(this.form)" /> ~ <script> function(a){ var b1 = a.elements["c1"].options[a.elements["c1"].selectedIndex].value; var b2 = a.elements["c2"].options[a.elements["c2"].selectedIndex].value; var b3 = a.elements["c3"].options[a.elements["c3"].selectedIndex].value; var b4 = a.elements["c4"].options[a.elements["c4"].selectedIndex].value; var b5 = a.elements["c5"].options[a.elements["c5"].selectedIndex].value; var b6 = a.elements["c6"].options[a.elements["c6"].selectedIndex].value; var b7 = a.elements["c7"].options[a.elements["c7"].selectedIndex].value; var b8 = a.elements["c8"].options[a.elements["c8"].selectedIndex].value; var b9 = a.elements["c9"].options[a.elements["c9"].selectedIndex].value; var b10 = a.elements["c10"].options[a.elements["c10"].selectedIndex].value; var b11 = a.elements["c11"].options[a.elements["c11"].selectedIndex].value; var b12 = a.elements["c12"].options[a.elements["c12"].selectedIndex].value; var b13 = a.elements["c13"].options[a.elements["c13"].selectedIndex].value; var b14 = a.elements["c14"].options[a.elements["c14"].selectedIndex].value; var b15 = a.elements["c15"].options[a.elements["c15"].selectedIndex].value; var b16 = a.elements["c16"].options[a.elements["c16"].selectedIndex].value; var b17 = a.elements["c17"].options[a.elements["c17"].selectedIndex].value; var b18 = a.elements["c18"].options[a.elements["c18"].selectedIndex].value; var b19 = a.elements["c19"].options[a.elements["c19"].selectedIndex].value; var b20 = a.elements["c20"].options[a.elements["c20"].selectedIndex].value; var b20 = a.elements["c20"].options[a.elements["c20"].selectedIndex].value; var b21 = a.elements["c21"].options[a.elements["c21"].selectedIndex].value; var b22 = a.elements["c22"].options[a.elements["c22"].selectedIndex].value; var b23 = a.elements["c23"].options[a.elements["c23"].selectedIndex].value; var b24 = a.elements["c24"].options[a.elements["c24"].selectedIndex].value; var b25 = a.elements["c25"].options[a.elements["c25"].selectedIndex].value; var b26 = a.elements["c26"].options[a.elements["c26"].selectedIndex].value; var b27 = a.elements["c27"].options[a.elements["c27"].selectedIndex].value; var b28 = a.elements["c28"].options[a.elements["c28"].selectedIndex].value; var b29 = a.elements["c29"].options[a.elements["c29"].selectedIndex].value; var b30 = a.elements["c30"].options[a.elements["c30"].selectedIndex].value; ~

  • セレクトメニューの値の取得

    質問します。 下記のようなセレクトメニューがあった場合に、表示されている値(AA,BB)をJavaScriptで取得する場合はどのようなコーディングをすればよろしいのでしょうか? <select name="SL_CMB" onChange="alert();"> <option value="1" Selected>AA</option> <option value="2" >BB</option> <option value="3" >CC</option> <option value="4" >DD</option> <option value="5">EE</option> </select>

  • Cookieの設定

    JavaScriptでCookieを使ってみようと思い、 以下のようなサンプル関数をもらってきたのですが。 この中の 24 * 60 * 60 * 1000 * 31 * 1 ってそれぞれの数値は何を示しているのでしょうか?? 消去日の設定部分なのは良くわかるのですが。 初歩的な質問で、すいませんが、どなたか教えてください。 ------以下サンプルの関数------ function SetCookie (name,value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } // 消去日の設定は、この関数の中に指定します function set_data(name,put_data) { var expdate = new Date (); expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31 * 1)); SetCookie (name,put_data,expdate); }

  • javascriptでセレクトメニューの連動と自動計算

    最近、javascriptの勉強をさせてもらっております。javascriptでは自動計算ができると聞き、ハードルが高いとは思うのですが、占い好きの私に以下の事に挑戦させて下さい。 セレクトメニューの連動を使用して、誕生月を選んだら、その月に応じて異なった好きな食べ物のメニューが表示されるという事がまず最初。 そして、誕生月の各月の項目にそれぞれ異なった数字を格納して下の「S」に代入し、それと同じように、食べ物のメニューの項目のそれぞれに3個ワンセットの異なった数字を格納して下の「A,B,C」に代入したいのです。 連動はここまでで、新たに好きな3桁の数字のセレクトメニューと 好きな2桁の数字のセレクトメニューを作り、独自の計算式(1)~(6)を経て、ラッキーナンバーを出すという事をしたいのですが、セレクトメニューの各月の項目に数字を格納というか、その項目を選ぶ事により、そこの項目に設定した数字を計算式に代入させる(Sに代入)やり方が解りません。 同様に食べ物のある項目を選択すると、その項目に設定した3個ワンセットの数字を計算式に代入させる(A,B,Cに代入)やり方が解りません。 解る部分は、ある書物を参考にして書いてみましたが、つなぎ合わせた感じになってしまって、すみません。そして説明の仕方がややこしくなってしまいましたがよろしくお願いします。(独自の計算式(1)~(6)の内容は気にしないで下さい) ---------------------------------------------------------------- <html> <head> <title>あなたのラッキーナンバー</title> </head> <body> <form name="calcuation"> //セレクトメニューの連動部分が解りません。こんな感じにしたいのですが。 私の誕生月は <select name="month" onChange="calculation();"> <option value="23">1月 // ここには数字の「23(Sに代入)」が格納されている <option value="12">2月 // ここには数字の「12(Sに代入)」が格納されている <option value="56">3月 <option value="89">4月 <option value="5" selected>5月 <option value="88">6月 <option value="70">7月 <option value="">8月 <option value="">9月 <option value="">10月 <option value="">11月 <option value="">12月 </select>で、 (例えば、3月を選択すると食べ物メニューが出て選択する) 好きな食べ物は <select name="food" onChange="calculation();"> <option>トマト <option value="8,24,200">マグロ //ここには数字の「8,24,200(A,B,Cにワンセットでそれぞれに代入)」が格納されている <option value="2,205,1555">みかん //ここには数字の「2,205,1555(A,B,Cにワンセットでそれぞれに代入)」が格納されている <option>納豆 <option selected>豆腐 <option>ラーメン </select> です つまり、1月生まれでマグロが好きな場合、選択した時、「S」→「23」「A」→「8」「B」→「24」「C」→「200」を同時に代入させたいです。 ここから下の部分は参考書を元に書いてみました。 私の好きな3桁の数字は <select name="number_1" onChange="calculation();"> <option>100 <option>200 <option>300 <option>400 <option selected>500 <option>600 <option>700 <option>800 <option>900 </select>で、私の好きな2桁の数字は <select name="number_2" onChange="calculation();"> <option>10 <option>20 <option>30 <option>40 <option selected>50 <option>60 <option>70 <option>80 <option>90 </select> あなたのラッキーナンバーは<input type="text" name="number_luckey" class="text_color" value="0" size="8" maxlength="6">です。 </form> </body> </html> <script type="text/javascript"> // この辺に何かの記述が必要ですよね。 function calculation() { // 好きな3桁の数字 var number_1 = parseInt(document.calcuation.number_1[document.calcuation.number_1.selectedIndex].text); // 好きな2桁の数字 var number_2 = parseInt(document.calcuation.number_2[document.calcuation.number_2.selectedIndex].text); // 独自の計算式(1) var number_3 = number_2 * 365;  // 独自の計算式(2) var number_4 = (number_3 / A) - S; // 独自の計算式(3) var number_5 = number_4 / B;  // 独自の計算式(4) var number_6 = number_5 * C; // 独自の計算式(5) var number_7 = number_1 * number_2 / 20 * 365; // 独自の計算式(6) var number_luckey = number_7 - number_6; document.calcuation.number_luckey.value = number_luckey; return; } </script>