WEB相談室

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

タイトル:SUBMITせずにデータ登録

0:[投稿] Q [2002/08/19 11:10 ][環境:WIN+IE 不明]

はじめまして、Qといいます。

画面の変更、更新をせずにデータを登録したいのですが
可能なのでしょうか?まだまだ初心者で、サーバ側の
処理云々等よくわかってません。
的外れな質問ですいませんが、どなたか教えて頂け
ませんか?よろしくお願いします。

参考までに簡単なソースを下記に記載します。
<%
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("Test.mdb")
%>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBSCRIPT">
FUNCTION Inst()
'ここに登録コードを書きたい
'strSQL="INSERT INTO TEST COMMENT VALUE('" & document.all("txtTest").innerText & "')"
'ObjConn.Execute("strSQL")
'↑のような処理です。
END FUNCTION
</SCRIPT>
</HEAD>
<BODY>
<TEXTAREA NAME="txtTest" ROWS=3 COLS=20></TEXTAREA>
<INPUT TYPE="BUTTON" NAME="btnTest" VALUE="登録" onClick=Inst()>
</BODY>
</HTML>
<%
ObjConn.Close
Set ObjConn=Nothing
%>


1:[回答] popo [2002/08/19 11:55 ]

基本的には実行しないと登録は無理だと思います。
しかし、フレーム等を使って擬似的に出来るみたいなのですが、
試したことはありません。

たとえば、フレーム0にして、そこに登録する処理を記入。
もちろんフレーム0ではない方はそのままで、フレーム0の方は処理される。

うーん、ちと解かり難い説明かな?


2:[回答] andi [2002/08/19 13:16 ]

「SUBMITせずに」とは「画面遷移をせずに」と言う意味でしょうか?
それでよければステータスコードで「204」を与えてやれば実現出来る気がします。

http://www.asahi-net.or.jp/~ax2s-kmtn/status.html
http://isweb5.infoseek.co.jp/diary/sanaki/code/asp/incom.htm

あと、ソースですが「ObjConn」をSetしているのがサーバサイドなのに、
「ObjConn.Execute("strSQL")」はクライアントサイドで処理されているようですが、
このままだとエラーになるのでは無いでしょうか。


3:[回答] まさや [2002/08/19 14:55 ]

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

そうです、画面遷移をせずにという意味です。
andiさんの指摘通りサーバ側、クライアント側、両方の
処理が混同してます。その辺りがよく理解していない
もので^^;
その辺の知識を無視して理想的なコードを書いてみました。
当然このままだとエラーになります。

そこで、Sessionを使って何とかならないかと思って
Session("objCon")=Server.CreateObject("ADODB.Connection")
などとやってみましたが、型が一致しませんと…。
検討違いな対処法かもしれませんが、私にはこの辺が限界でした。
セッションが無効になっているのかと思い設定を変えようと
思いましたが、その方法もわからず…。
途方に暮れています(T-T)

popoさんのおっしゃるようにフレームを使って対処するしか
ないのでしょうか…(泣)


4:[回答] まさや [2002/08/19 14:57 ]

最初の投稿がQになってますが、まさやです。
同一人物です^^;
混乱させてしまったら申し訳ございません。


5:[回答] andi [2002/08/19 15:12 ]

Sessionの内容もサーバ側に保存されますよ。
ですので、クライアントでSessionは使えない気がします。

また、ADODB.Connectionの内容をSessionに保存すると、
データベース接続管理機能が利用出来ずに効率が悪くなる・・・
と言う話をどこかで見たのですが情報源忘れました。

また、上記で私が述べている(ステータスコードを使う)方法は、
サーバに登録する処理を次ページで全て行なう方法です。

但し、サーバからはステータスコード「204」を返すので、
クライアントの画面は変わらないのでは無いかと。


6:[完了] まさや [2002/08/19 17:47 ]

みなさん、ありがとうございました。
結局フレームを分けてSUBMITすることにしました。
これが一番初歩的で私にはぴったりかと^^;

これからもどうぞよろしくお願いします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World