電子書籍の厳選無料作品が豊富!

宜しくお願いします。

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

javascriptを使用してcookieに保存する方法で作成していたのですが
保存量オーバーみたい中途半端に保存されてしまうのです・・

すいませんが宜しくお願いします。

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/04/23 22:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!