WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:画面裏でASPの処理を動かす方法

0:[投稿] みち [2002/07/03 15:43 ][環境:WIN+NN WIN系+OTHER]

初めて質問させていただきます。

ASPを使ってDBと連携したシステムを作成しています。
画面上に多数のチェックボックスがあり、そのチェックが変わる度にDBに値を反映させたいのですが、可能でしょうか?
画面表示上は再読み込みなど行わず裏で処理させたいのですが…。

onClick="DB反映処理用ファイル名.asp"

だと、画面が切り替わってしまいます。
また、更新用のSubmitボタンを使うとできるのですが、あえてボタンを使わずに作る事になったので…。
可能、不可能を知りたいのと、可能であれば方法を教えて下さい。
お願いいたします。


1:[回答] popo [2002/07/03 15:57 ]

DBからのデータをHIDDEN等に格納しておいて、それをJAVASCRIPTで処理すれば可能だと思います。


2:[質問] みち [2002/07/03 16:13 ]

popoさん、さっそくありがとうございます。
JavaScriptでDBに書き込めるのでしょうか…?
ちなみに、更新ボタンによって処理させていたときは、

HIDDENにDBデータを格納

チェックボックスがクリックされる度にHIDDENの中身が変わるようJavaScriptで処理

更新ボタンをクリックすると初めて別のASPに飛ぶ。

飛んだ先のASP内でDBに書き込む処理を行う

元の画面に戻ってくる

という処理をしていました。
popoさんの「JavaScriptで処理」というのは、JavaScript内でどういう処理をさせることかをできればもう少し詳しく教えて下さい。


3:[回答] popo [2002/07/03 16:32 ]

すみません。読み間違っていました。

>DBに値を反映

DBに直接データを入れたいということですね。
javascriptはクライアントで動作する言語なので、DBには書き込むことは出来ません。ので、無理だと思います。もしするなら、チェックボックスをチェックをしたときに、同じページに飛ぶという方法しかないのではないでしょうか?

AAA.HTML

チェックボックスを押す。javascriptによる移動。

↓この間に、データベースに書き込みをする。

AAA.HTMLに戻る。

もちろん、違うページに飛ぶ時は、何か条件を入れないといけませんが・・・

テストしていないので、”多分”の回答になってしまいますが、どーですか?


4:[質問] みち [2002/07/03 16:42 ]

popoさん、ありがとうございます。

でも、チェックボックスが沢山あるので、できれば画面を切替えずに処理を行いたいのです。
画面を切替えずにDB書き込みをするASPファイルに飛んで処理を行って戻ってくる。
ユーザーはずっと同じ画面を見ているので裏で処理が行われても気づかない。
というのが理想です。
(作成中のシステムでは画面表示させているファイルをはじめ、全て拡張子が「.asp」のファイルを使用しています。)
仕様自体無理があってすみません。。
飛ばすことはできるのですが、画面はそのままでできないでしょうか…?


5:[回答] ふじ [URL] [2002/07/03 19:06 ]

フレームを使って、隠しフレームの画面を遷移させるとか。

ASP じゃないけど、
http://www.softkoubou.co.jp/pjs/index.html
こんなふうに。


6:[回答] 通りすがりの凡人 [MAIL] [URL] [2002/07/03 22:55 ]

ご指定の環境では厳しいかもしれませんが、WIN+IE5以上という環境であれば簡単に実現できるのではないかと思います。
IE5に実装されているMSXMLのXMLHTTPRequestというオブジェクトを使用します。

1.クライアントサイド・スクリプト(JavaScriptなどですね)でチェックボックスをチェックしたときに値をXML(DOMツリー)に格納し、サーバに送信する。
2.サーバ側でXMLを受け取りDB書き込み処理をキック。
書き込みを終えたらクライアントに処理通知などを再びXMLでレスポンスとして返す。
3.クライアントでサーバからのレスポンスを受け取る。

1〜3の処理を行うのに画面の切り替えを行う必要はありません。


7:[回答] R.M [2002/07/04 02:18 ]

JavaScriptでイメージとしてASPを読み込むとか


8:[完了] みち [2002/07/05 16:22 ]

ふじさん、通りすがりの凡人さん、R.Mさん、色々な提案をありがとうございます。
隠しフレームはとても有効な方法だと思いました。
ですが既にある画面だけでソースがかなり大きくなっている事もあって、同一画面内での処理を増やしたくないので、結局はチェック毎に読み込むか、ボタン更新の方法を取る事にしました。

ちなみに、JavaScriptを使って裏で別画面を起動(window.open)しつつ、元の画面をそのまま表示し(focus();)裏で処理をさせる方法も取ってみたのですが、Netscapeの起動が遅くて、裏で画面が上がるまでに10秒以上かかるという問題があり却下しました。

みなさまありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World