• ベストアンサー

フォームの結果表示場所を指定したい。クリップボードにコピーしたい。

文章で質問するのが難しいですがどうぞよろしくお願いいたします。 社内WEBでテンプレートをアップするように指示を受け、ページを作成しています。 予約を取る為のDBに入力する際、「備考欄」があり、そこに (1)どこでお店を知ったか (2)性別 を入力してもらいたいです。 後に統計を取りたいので必ず定型文で入力してほしいのですが、備考欄がテキストエリア(あたりまえですが)なのでいろんな表現(男、男性、オトコ)がされてしまい正しく統計が取れません。 そこで別の備考用テンプレートページを小窓で開き、 (1)(2)の選択結果をクリップボードへコピーさせ、備考欄に貼り付けたいと思います。 選択結果をクリップボードへコピーするソースがわかりません。 あるいはクリップボードではなく、テキストエリアに選択結果を表示させる方法も教えていただけると非常に助かります。 どうぞ、ご教授お願いいたします。 わかりにくい文章ですみません。

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

  • ベストアンサー
  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

こんなのでいいのかな。 でも統計を取るためなら、selectかなんかで選ばせたものでいいのでは? textareaでしかダメな理由でもあるのでしょうか? <html> <head> <script> function copy_value( obj){ document.getElementById('textarea1').value = obj.value; } </script> </head> <body> <form id='form1'> <select name='sex' onChange='copy_value( this);'> <option value='男'>男 <option value='女'>女 </select> <br /> <textarea id='textarea1'></textarea> </form> </body>

konga
質問者

お礼

ありがとうございます。 思っていた事ができそうです!!ありがとうございました。 テキストエリアでないと絶対ダメというわけではないのですが、なぜかそこは譲れないとのことで。。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

フォームの項目は増やしたいが、DBの項目追加を含めて サーバ側のプログラムは変更したくない(できない?) なので備考欄を活用したい という事でしょうか。 ならば、送信する時にコッソリ備考欄に追加してしまうのも手だと思います。 ※javascript-offだとどうにもなりませんが。 ※送信した後、確認画面があったり、修正が可能だったりするとサーバ側のプログラム変更が必要になってしまいますが。 以下はサンプル <html> <head> <title>test</title> <style type="text/css"> <!-- --> </style> <script type="text/javascript"> <!-- function formadjust(){ var addData; var oList = document.getElementsByName('sex'); if(oList[0].checked) addData = 'sex:'+oList[0].value; else addData = 'sex:'+oList[1].value; addData += ','; oList = document.getElementsByName('source'); for(var i=0;i<oList.length;i++){ if(oList[i].checked){ addData += 'source:'+oList[i].value+','; } } var oTarea = document.getElementsByName('bikou')[0]; oTarea.value = addData + oTarea.value; } //--> </script> </head> <body> <form action="" onsubmit="formadjust()" method="get"> <fieldset><legend>性別?</legend> <input type="radio" name="sex" id="sex_man" value="男性" checked><label for="sex_man">男性</label> <input type="radio" name="sex" id="sex_woman" value="女性"><label for="sex_woman">女性</label> </fieldset> <fieldset><legend>どこで知りましたか?</legend> <input type="checkbox" name="source" id="souorce_newspaper" value="新聞"><label for="souorce_newspaper">新聞</label> <input type="checkbox" name="source" id="souorce_web" value="web"><label for="souorce_web">ウェブ</label> </fieldset> <fieldset><legend>備考</legend> <textarea name="bikou">BIKOU</textarea> </fieldset> <p><input type="submit"></p> </form> </body> </html>

konga
質問者

お礼

ありがとうございます。 お察しのとおり、サーバ側は現状いじることができないんです。 でもこんな方法もあるんですね!勉強になりました。ありがとうございました!

  • awazak
  • ベストアンサー率36% (61/165)
回答No.2

ごめんなさい、細かいことですが↓ <select name='sex' onChange='copy_value( this);'> <option value=''>選択してください。 <option value='男'>男 <option value='女'>女 </select>

konga
質問者

お礼

了解しました!ありがとうございました!!