人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WEBで、データを複数プログラムに渡す処理について教えてください。

データを入力しOKボタンを押すとcgiが呼び出され、データをメールで送信するプログラムがあるのですが、
あるASPのDBサービスにもデータを保管したいと考えました。

そのASP側の設定は終わり、マニュアル通り<form action="外部URLリンク?/servlet.WebToLead?encoding=UTF-8" method="POST"><?id設定処理?>を埋め込めば、ASPへのデータ登録は成功したのですが、これをすると元のメール送信のcgi呼び出しと両立できなくなってしまいました。(1操作では1つのaction="?"しか指定できないため)

まずはcgiを呼び出し、メール送信処理をしてから、<form action="外部URLリンク?/servlet.WebToLead?encoding=UTF-8" method="POST">と同等の処理を実行させることを考えているのですが、このようなことは可能でしょうか?どうやったらできるでしょうか?

他の方法でもいいのですが、
・javascriptでは方法があるようですがクライアント依存はしたくないです
・ユーザに2回ボタンを押させたりはせず、1回のボタン押下で2つの処理を実行
の条件でお願いします。

よろしくお願いいたします。

●質問者: yanmaani
●カテゴリ:ウェブ制作
✍キーワード:ASP CGI dB JavaScript Web
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● horosco75
●27ポイント ベストアンサー

可能です。

PerlスクリプトともASPのパラメタもないので具体的な回答はできませんが、

下記の記事を参考にcgiを書き換えてみてください

http://d.hatena.ne.jp/NekoDaisuki/20070107/1168115360

◎質問者からの返答

ありがとうございます、頂いたURLの内容通りやればできそうな気がしてきました。


2 ● b-wind
●27ポイント

HTML のみでは不可能です。

基本的には JavaScript で2つの form 送信を行うことを考えた方がよいでしょう。

・javascriptでは方法があるようですがクライアント依存はしたくないです

この程度であれば、ほとんど差がないか吸収するバッドノウハウがあります。

また、依存性を吸収してくれるライブラリ等を使用するのも手でしょう。


もう一つの方法としては HTML からは CGI または ASP の片方のみデータ送信し、

データを受け取った方はもう片方に HTTP or HTTPS 経由でデータを渡すことが出来ます。

仕組みはややこしくなりますが、片方だけ呼ばれると言った不具合等は防ぎやすくなります。

◎質問者からの返答

ありがとうございます、依存性吸収のノウハウを検索したら、意外に情報が多く驚きました。

こちらも検討してみます。


3 ● naninanida11
●18ポイント

vbscriptでも作れます。

http://q.hatena.ne.jp/1263310161


4 ● mattn
●18ポイント

・同じドメインであればAjaxでPOST後にsubmit

・違うドメインであればAjaxでGET後にsubmit

となる様にonsubmit等でフックしてあげればクライアント側だけで出来なくもないですが、CGI側でやるのがトランザクションも制御出来て良いかと思います。PerlであればPOST先のCGIでother-hostへ転送する様なスクリプトは...

use CGI;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

my $q = CGI->new;
my $url = 'http://other-host/regist.cgi';
my %formdata = $q->param;
my $request = POST($url, [%formdata]);
my $ua = LWP::UserAgent->new;
my $res = $ua->request($request);

で行けるかと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ