• ベストアンサー

ホームページ上で、次の処理を続けてやるにはどうすればいいですか?

ホームページ上で、次の処理を続けてやるにはどうすればいいですか?  名前、メアドなどを入力してもらう  空欄でなければメーラー経由なので、これらのデーターを送信する ここまでは なんとかこぎつけました、次が問題です。 上の「送信」ボタンを押された後 初めて次に配置するボタンを有効にする。 このボタンで 次の画面に初めて移動出来る様にしたいです。 よろしくお願いします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

No2です。 >空欄のある程度のチェックはCGIでやってます。 であれば、cgiからの出力を「次の画面」(場合によっては再入力画面)にすればよいだけでは? >送信が行われた後だけ、このボタンを有効にする方法はありますか? チェックをcgiで行なう以上、その結果と無関係に「送信したらボタン表示」というのは意味がわかりませんし、ボタンを表示したところでcgiからの出力を表示すればそのボタンは消えてしまいますけれど、どういうことでしょうか? 別画面に表示しているとか? ボタン表示は出来ますが、チェック結果が不可の場合に、元の画面では「次へ」の操作ができるようになっているという矛盾が生じますけれど? ボタンの表示/非表示は、No2にも書きましたように、style.displayを操作すれば可能ですが、もとの仕組みがどのようになっているのかまったく理解できません。 とりあえず、別ウインドウでのサンプルを。 (上で述べたように、矛盾するので意味をなしません。あくまで方法としてのサンプルです。) (ボタンは非表示のものとdisabledのものの2種類作ってあります) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><title>test</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function test(f) { var i=0, e, flag=true, elm = f.elements; while (e=elm[i++]) if (e.nodeName=="INPUT" && e.type=="text" && e.value=="") flag = false; if (flag) { //next1を使用可能に document.getElementById("next1").disabled = false; //next2を表示 document.getElementById("next2").style.display = "inline"; } else { alert("空欄があります"); } return flag; } //--> </script> </head> <body> <form action="xxxx.cgi" method="post" onsubmit="return test(this)" target="_blank"> <label> 姓:<input type="text" name="name1" value=""><br> </label> <label> 名:<input type="text" name="name2" value=""><br> </label> <input type="submit" value="送信"> </form> <hr> <div> <button type="button" id="next1" disabled>次へ1</button> <button type="button" id="next2" style="display:none;">次へ2</button> </div> </body> </html>

masarun53406
質問者

補足

説明不足ですみません、しかしサンプルを作っていただいてありがとうございます。これは試してみます。 今作成していて困っていることは、formに入力が完了して、送信ボタンを押したら、初めて次の画面に移動してもらう方法です。 formが空欄があった場合はメッセージを出して入力を促しています。ここまでは何とかOKレベルと思います。 しかし、現在はformの入力を全くしないでも、次のボタンは有効になっていますので、仮に送信ボタンが押されたとき初めて 次のボタンが現れる、或は次の画面に自動的に移る が 出来ないかなと考えています。 よろしくお願いします。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>空欄でなければメーラー経由なので、これらのデーターを送信する 空欄のチェックをjavascriptで行なっているのでしょうか? 「ボタン押下」→「空欄でない」→(メーラー起動)→次の画面 ということでよいのなら、そのままスクリプトで ページ遷移なら   location.href = ○○ 初期設定でdisplay:noneなどのdiv要素などを表示するなら、   ○○.style.display = 'block' のようにすることで、見かけ上は可能と思いますが、データ送信内容と連動しません。(ユーザの送信/キャンセルと関係なく動作する) ちゃんとやるなら、データはサーバに送信するようにして、サーバ側のソフト(cgiなど)でメール送信処理や新しいページの表示(データの送信)をするのがよろしいかと思いますが?

masarun53406
質問者

お礼

たびたびの 基本的お願いと質問で 丁寧に説明をしていただき、ありがとうございました。 多少危険は承知で なんとか仕上げてみます。

masarun53406
質問者

補足

空欄のある程度のチェックはCGIでやってます。最低氏名とアドレスは無い場合は送信できないようにはしました。 送信ボタンの下に次に進むボタン(ダウンロードできる画面へ)を配置しようと思いますが、送信が行われた後だけ、このボタンを有効にする方法はありますか? スクリプトは超初心者な者で、サンプルなどを解析しながらやってます、従ってサンプル的に提示いただけると大変助かります。

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.1

結論では、無理です。 ブラウザーとメーラーは別のソフトである上に ブラウザも、メーラーも好みで自由なものを使えます。 よって、たとえ出来たとしたら、ブラウザーからメールを監視することになり セキュリティーの上で「やれるべきではない」となります で、それでは納得ができないでしょうから 私なりの返答です。 そのメールを自動送信で、パスワードなりを相手に送ってください そのパスワードで次のページに行くようにつくれば、とりあえず 希望の処理になりますか? ちがうのかな? 文章はもう一つの答えも言えそうなので、一緒に書きます 「送信」のボタンがSUBMITなら、次のページに飛びますが、意味が違いましたかね?

関連するQ&A