プロが教えるわが家の防犯対策術!

HPビルダー6で制作中なのですが、
アンケートフォームの内容(データ)を別のhtmlページに確認画面として
受け渡しする事は可能でしょうか?どなたか教えて下さい。
ちなみに、自作CGIプログラムはプロバイダーの方では使えない様です。

A 回答 (2件)

すみません。

土日出かけていたため、回答が遅れました。
No.1に挙げた2の方法で書いたHTMLを載せますので、参考にしてみて下さい。
(行頭の全角スペースは、半角スペースやタブに変換してください。)

■Aページ
※<HEAD>~</HEAD>内に
<SCRIPT language="javascript"><!--
function kakunin(f) {
  var prm = new Array();

  if (f.namae.value) prm[prm.length] = "namae="+escape(f.namae.value);
  if (f.adress.value) prm[prm.length] = "adress="+escape(f.adress.value);
  for (var i=0; i<f.sexy.length; i++)
    if (f.sexy[i].checked) prm[prm.length] = "sexy="+escape(f.sexy[i].value);
  prm[prm.length] = "os="+f.os.options[f.os.selectedIndex].value;
  if (f.akosu.value) prm[prm.length] = "akosu="+f.akosu.value;
  if (f.bkosu.value) prm[prm.length] = "bkosu="+f.bkosu.value;
  if (f.ckosu.value) prm[prm.length] = "ckosu="+f.ckosu.value;
  prm[prm.length] = "siharai="+escape(f.siharai.options[f.siharai.selectedIndex].value);
  for (var i=0; i<f.omake.length; i++)
    if (f.omake[i].checked) prm[prm.length] = "omake="+escape(f.omake[i].value);
  prm[prm.length] = "kansou="+escape(f.kansou.value);

  location.href = "b.html?"+prm.join('&');
  return false;
}
//--></SCRIPT>

※FORMタグにonSubmitを加える。
<FORM method="POST" action="mailto:xxxxx@xxx.xx.xx" enctype="text/plain" onSubmit="return kakunin(this)">

※name属性にnameという値はあまりよくないので、namaeに変更
<INPUT size="30" type="text" maxlength="30" name="namae"></TD>

※確認ボタンをSUBMITに変更
<INPUT type="submit" value="確認">

■Bページ
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE></TITLE>
<SCRIPT language="JavaScript"><!--
var FORM = new Array();

// パラメータ解析
var buffer = location.search.substr(1);
var pairs = buffer.split("&");
for (var i in pairs) {
  var pair = pairs[i].split('=');
  if (FORM[pair[0]]) FORM[pair[0]] += "\0"+unescape(pair[1]);
  else FORM[pair[0]] = unescape(pair[1]);
}

function makeTR(sbj,val) {
  return '<TR><TD width="25%">' + sbj + '</TD><TD width="75%">' + val + '</TD></TR>';
}
function drawHidden() {
  for (var p in FORM) {
    var val = FORM[p].split(/\0/);
    for (var n in val)
      document.writeln('<INPUT type="hidden" name="'+p+'" value="'+val[n]+'">');
  }
}
//--></SCRIPT>
</HEAD>
<BODY bgcolor="#ffffcc">
<P align="center"><B><FONT size="+2">確認してください</FONT></B></P>
<FORM method="GET" action="mailto:xxxxx@xxx.xx.xx" enctype="text/plain" name="fomu">
<TABLE border="1" width="414" align="center">
<SCRIPT language="JavaScript"><!--

if (FORM["namae"]) document.writeln(makeTR('名前', FORM["namae"]));
if (FORM["adress"]) document.writeln(makeTR('住所', FORM["adress"]));
if (FORM["sexy"]) document.writeln(makeTR('性別', FORM["sexy"]));
if (FORM["os"]) document.writeln(makeTR('OS', FORM["os"]));
var sh = new Array();
if (FORM["akosu"]) sh[sh.length] = '01:' + FORM["akosu"] + "個";
if (FORM["bkosu"]) sh[sh.length] = '02:' + FORM["bkosu"] + "個";
if (FORM["ckosu"]) sh[sh.length] = '03:' + FORM["ckosu"] + "個";
if (sh.length) document.writeln(makeTR('商品', sh.join(' ')));
if (FORM["siharai"]) document.writeln(makeTR('購入方法', FORM["siharai"]));
if (FORM["omake"]) {
  var omk = FORM["omake"].split(/\0/);
  if (omk.length) document.writeln(makeTR('おまけ', omk.join(' ')));
}
if (FORM["kansou"]) {
  if (FORM["kansou"]) document.writeln(makeTR('感想', FORM["kansou"].replace(/\r\n|\r|\n/g, "<BR>")));
}
drawHidden();
//-->
</SCRIPT>
</TABLE>
<CENTER><INPUT type="submit" value="送信"></CENTER>
</FORM>
</BODY>
</HTML>

正常に確認ページが表示され、その内容で送信できることは確認しましたが、actionにメールアドレスをいれてうまくいくかは分かりません。
どこかのフォームでコードサービスを利用した方が楽かもしれませんよ。
    • good
    • 0
この回答へのお礼

leaz024さん、今晩は!leaz024さんから頂いたソースを早速コピペして
実際に試してみたところ・・・す・すごいです!! 
本当に有難う御座いました。

ついでと言ってはなんなんですが、No.1に挙げた1の方法で書いたソースを
今後の参考にしたいので、(見てみたいんです。)また、教えてもらえないでしょうか?

お礼日時:2002/07/11 22:45

確認画面を表示するにも、いろいろな方法があります。



1.フォームの内容を参照して確認ページを生成し、document.write でウィンドウを上書きする。
  ※2ほどの難解さはないが、全HTMLを出力するのでデザインの変更が面倒
2.GET渡しで確認ページを表示し、location.search(フォーム内容)を解析してHTMLを生成する。
  ※フォームのデータ量に制限がある上に難解
    HTMLを用意しておけるのでデザインの変更は容易
3.showModalDialog で確認ページを表示し、パラメータを介してフォーム内容を受け取りHTMLを生成する。
  ※比較的容易に作成できHTMLも用意しておけるが、IE限定
4.confirm(確認ダイアログ)を使う。
  ※見た目はよくないが、もっとも簡単に作成できる

1,2はページ遷移タイプで、3,4はダイアログ表示タイプになります。
どれも一長一短なので、各制限などから適切なものを選ぶとよいでしょう。

# 要らぬ心配かもしれませんが、アンケートの集計はどうやって行うのでしょうか?

この回答への補足

leaz024さん、返事ありがとうございます!

私、間違えていました「アンケートフォーム」じゃなく「メールフォーム」です。
こんな事も間違えてしまう超素人なので質問が下手ですいません。

4つの方法をあげてもらいましたが、たぶん私がやろうとしてるのは「1」か「2」だと思います。(どちらが私のやろうとしてる事に適しているのか分かりません)

やりたい事は、Aページから「フォームに記入」→「確認ボタンを押す」
→Bページに「確認内容表示」→そのままBページから「送信」です。
(確認内容表示する際フォームに記入があった項目だけを表示し
   メールで受け取る際にも確認内容表示された内容と同じにしたいのです。)
 
ちなみに、Aページ・Bページのソースを下にコピペします。
どこにどの様なプログラムをいれたらいいのか教えて下さい。
プログラムを作成する技術は無くコピペするのがやっとなんです。

ここからAページ*****************************************

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.1 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM enctype="text/plain" name="fomu">
<CENTER>
<TABLE border="1" width="414" height="74">
<TBODY>
<TR>
<TD>名前</TD>
<TD><INPUT size="30" type="text" maxlength="30" name="name"></TD>
</TR>
<TR>
<TD>住所</TD>
<TD><INPUT size="50" type="text" name="adress"></TD>
</TR>
<TR>
<TD width="83">性別</TD>
<TD width="267"><INPUT type="radio" name="sexy" value="男">男   <INPUT type="radio" name="sexy" value="女">女</TD>
</TR>
<TR>
<TD>OS</TD>
<TD><SELECT name="os">
<OPTION selected>なし</OPTION>
<OPTION value="win95">windowrs95</OPTION>
<OPTION value="win98">windowrs98</OPTION>
<OPTION value="winMe">windowrsMe</OPTION>
<OPTION value="winXp">windowrsXp</OPTION>
</SELECT></TD>
</TR>
<TR>
<TD width="83">商品</TD>
<TD width="267">01<INPUT size="5" type="text" name="akosu">個  02<INPUT size="5" type="text" name="bkosu">個  03<INPUT size="5" type="text" name="ckosu">個</TD>
</TR>
<TR>
<TD>購入方法</TD>
<TD><SELECT size="3" name="siharai">
<OPTION value="現金" selected>現金</OPTION>
<OPTION value="カード">カード</OPTION>
<OPTION value="銀行振込">銀行振込</OPTION>
</SELECT></TD>
</TR>
<TR>
<TD width="83">おまけ</TD>
<TD width="267"><INPUT type="checkbox" name="omake" value="A品">A品 <INPUT type="checkbox" name="omake" value="B品">B品 <INPUT type="checkbox" name="omake" value="C品">C品</TD>
</TR>
<TR>
<TD width="83">感想</TD>
<TD width="267"><TEXTAREA rows="2" cols="45" name="kansou"></TEXTAREA></TD>
</TR>
</TBODY>
</TABLE>
</CENTER>
<BR>
<CENTER><INPUT type="button" value="確認"></CENTER>
</FORM>
</BODY>
</HTML>

ここからBページ***************************************

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.1 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY bgcolor="#ffffcc">
<P align="center"><B><FONT size="+2">確認してください</FONT></B></P>
<FORM method="POST" action="mailto:xxxxx@xxx.xx.xx" enctype="text/plain" name="fomu">
<CENTER><INPUT type="submit" value="送信"></CENTER>
</FORM>
</BODY>
</HTML>

*****以上です。****************************************

私がしようとしてる事は可能なのでしょうか?お願い致します。

補足日時:2002/07/05 16:19
    • good
    • 0

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