
伝票入力する際、ACCESS等で作ると、例えば「得意先コード」を入力すると
「得意先名」が表示される。という画面がありますよね。
そこで先輩方にお伺いしたいのですが、
ASPを使って同様のことをやる場合、どんな手法があるのでしょうか?
私なりに考えた方法が2つほどあるのですが、これが正しいのでしょうか?
<案1>
・子ウインドウを表示し、そこでデータベースを参照し、親ウインドウに値を代入。
---親ウインドウ側---
<INPUT type="text" name="text1" onBlur="GetJTname()">
<INPUT type="text" name="text2">
<script language="JAVAScript">
function GetJTname(){
Newwin=window.open("test1_1.asp?a=" + document.form1.text1.value,"sample","width=240,height=180");
}
</script>
---子ウインドウ側---
<form name="form2">
<INPUT type="text" id=text1 name=text1 value="<%=rs.Fields("name_inf").Value%>">
</form>
<script language="JAVAScript">
function action(){
window.opener.document.form1.text2.value=document.form2.text1.value;
window.close();
}
</script>
<案2>
・自分自身にデータを投げる
<INPUT type="text" name="text1" onBlur="GetJTname()">
<INPUT type="text" id=text2 name=text2
QS=Request.QueryString("B")
value="<%if QS <>"" then %><%=Tname(QS)%><%end if%>">
<%function Tname()
<script language="JAVAScript">
function GetJTname(){
location.href ='test1.asp?B=' + document.form1.text1.value;
}
</script>
<%function Tname(code)
'... ADOの処理
end function%>
(案1)では、当然ながら一瞬ウインドウが開きます。
(案2)では、せっかく入力したTEXT1の内容が消えてしまいます。
No.2ベストアンサー
- 回答日時:
> 新たな画面を開いている関係上、レスポンスが悪いのが気になっていました。
姑息な手段の域を出ていませんが、こっそりフレームを切ってしまう、という手もあります。
どこでも良いんですが、左端とかにほそーく、かつ、ボーダを無しにして、そこのフレームで
処理を動かしちゃう。
あと、処理をするイベントは onBlur よりは onChange の方が良いでしょう。
onChange もフォーカスを失ったときにしか出てこないのですが、値が変わったときにだけ
出てきたはずです。
どちらにしても、Web ってこういう処理は厳しいですよね。件数が少なければ、
全ての得意先を埋め込んで、JavaScript で検索の処理を書いてしまうという手も
ありますけど。
回答ありがとうございます。
>処理をするイベントは onBlur よりは onChange の方が良いでしょう。
まだ、JavaScriptに慣れていないので、"onChange"イベントをリファレンス書より見つけだすことができていませんでした。
"DHTML","JavaScript","VBScript","ASP","SQL"のリファレンス本を5冊並べながら試行錯誤しています。
>どちらにしても、Web ってこういう処理は厳しいですよね
じつは、このお言葉を待っていたような気がします。
専門家の方が、簡単ではないという認識であれば、別の方法も検討に入れなくてはいけないと思ったしだいです。
>全ての得意先を埋め込んで...
確かに件数が少なければ良いと思いますが、今回は3000件以上のデータがあるのと、
常に変化している情報のため、難しいと思います。
No.1
- 回答日時:
> (案1)では、当然ながら一瞬ウインドウが開きます。
スクリーン(画面)の外に表示してはいかが?
ブラウザが表示されているスクリーンの大きさは、window.screen オブジェクトの
width、height プロパティで、それぞれ幅、高さが取得できます。
> (案2)では、せっかく入力したTEXT1の内容が消えてしまいます。
パラメータとして text1 を渡しているのだから、値を設定すれば良いんじゃないですか?
<INPUT type="text" name="text1" onBlur="GetJTname()" value="<%=○○○%>">
って。
# 私、ASPはやったことが無いので、パラメータの取得をどうやるのか分かりません m(_ _)m
# request みたいなオブジェクトがありませんか?
早速のご回答ありがとうございます。
>スクリーン(画面)の外に表示してはいかが?
なるほど。やってみます。
新たな画面を開いている関係上、レスポンスが悪いのが気になっていました。
本当は「onBlur」ではなく「AfterUpdate」の様なイベントがあればいいのにと思っているしだいです。
参照ボタン→子ウインドウ→選択→代入 のプロセスの方がいいような気もしてきました。
>パラメータとして text1 を渡しているのだから、値を設定すれば良いんじゃないですか?
まさにご指摘の通りですが、ほかにもいっぱいコントロールがあるのです。
中でも100文字ぐらいのテキストエリアが複数ありますので、
あまりでかいパラメータを渡すのもどうか?と思っています。
余談ですが、私はACCESS育ちで、HTMLはリファレンスを見ながら試行錯誤しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tabindexの取得
-
子ウィンドウを閉じるとき、親...
-
表示したいだけなんですけど…
-
画像の表示非表示について質問です
-
ラジオボタンと連動させたいです
-
一部Enter無効化の方法を教えて...
-
特定<table>内の<td>の色を変える
-
return trueとreturn falseの用...
-
onchangeイベントを強制的に発...
-
C言語クイックソートの比較総回...
-
slickのレスポンシブ > center...
-
ラジオボタンが選択されたらテ...
-
JavaScript ラジオボタン デ...
-
VBSでブラウザ上のテキストボッ...
-
ハイパーリンクを別ウインドウ...
-
ASP.NETでNAME属性を固定にしたい
-
javascriptでASPにデータを渡す
-
アンダーバーのname値は取得で...
-
ポップアップブロックにならな...
-
C#(csファイル)とjavascriptと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TextBoxに半角数字以外を入れた...
-
ページ間で変数を保持したい
-
tabindexの取得
-
フォームのPOSTデータをサブウ...
-
マイナスなら赤字で表示したい...
-
blurイベントについて
-
子ウィンドウを閉じるとき、親...
-
jQueryのdatepickerの日付が選...
-
どちらかひとつのテキストボッ...
-
カーソルが当たった箇所に吹き...
-
HTMLファイル同士での値渡し
-
VBSからjavascript
-
VBscriptの配列変数をJavascrip...
-
フォーカスが外れた時の入力チ...
-
ユーザー入力値の正誤判定をブ...
-
【Javascript】(テキストボッ...
-
JSで子ページから親ページのラ...
-
一部Enter無効化の方法を教えて...
-
javascriptのちょっとした動作...
-
VBScriptでpingを実行(ブラウザ...
おすすめ情報