• ベストアンサー

宜しくお願いします。

宜しくお願いします。 フレームで分割されたウィンドウA(左)、B(右)があり Aの部分にはsubmitボタン、Bの部分には60個位のセレクトメニューがあります。 Aのsabmitボタンを押すと、Bのセレクトメニューで選ばれた値を 取得しサーバー側に保存したいのですが、上手くいきません・・・。 わかる方がいましたら教えて下さい。 お願いします。 javascriptを使用してcookieに保存する方法で作成していたのですが 保存量オーバーみたい中途半端に保存されてしまうのです・・ すいませんが宜しくお願いします。

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

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

Perlというより、javascriptの問題の気がします。 (以下、空白2文字を全角空白にしているので直して実行して下さい) refer_frame.html <html>  <frameset cols="400,*">   <frame src="refer_frame_left.html" name="left">   <frame src="refer_frame_right.html" name="right">  </frameset> </html> refer_frame_right.html <html>  <head>   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />   <script type="text/javascript" src="frame.js"></script>   <title></title>  </head>  <body>   <form id="rightForm">    <select name="menuA" multiple>     <option value="A1">menu A1</option>     <option value="A2">menu A2</option>    </select>    <select name="menuB" multiple>     <option value="B1">menu B1</option>     <option value="B2">menu B2</option>    </select>   </form>  </body> </html> refer_frame_left.html <html>  <head>   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />   <script type="text/javascript">    //![CDATA[    function createMenu(menu){     var newMenu = document.createElement('select');     newMenu.name = menu.name;     newMenu.style.display = 'none';     newMenu.multiple = menu.multiple;     for (var i = 0; i < menu.options.length; i++) {      newMenu.options[i] = new Option(menu.options[i].text,                      menu.options[i].value);      newMenu.options[i].selected = menu.options[i].selected;     }     return newMenu;    }    function submitOtherFrameInfo(){     var rightFrame = top.frames['right'];     var rightForm = rightFrame.document.getElementById('rightForm');     var leftForm1 = document.getElementById('leftForm1');     leftForm1.appendChild(createMenu(rightForm.menuA));     leftForm1.appendChild(createMenu(rightForm.menuB));     leftForm1.action="http://127.0.0.1/cgi-perl/CGI.pm/recv_form.cgi";     leftForm1.method="POST";     leftForm1.submit();    }   //]]>   </script>   <title></title>  </head>  <body>   <form id="leftForm1">    <input type="button"        value="submit"        onclick="submitOtherFrameInfo()"/>   </form>  </body> </html>

men5000
質問者

お礼

ありがとうございました。 勉強し直します。

関連するQ&A

専門家に質問してみよう