VBscriptで前頁の値を取得するには?

[上に] [前に] [次に]
あき 1999/12/06(月) 18:30:14
コンボボックスで選択した値(valueでなくtext)を
次の画面にてVBscriptで取得したいのですが、
どう書いたら良いのか解りません。
もしよろしかったらどなたか教えて下さい。お願いします。

うぐいす 1999/12/06(月) 18:46:56
コンボボックスって、<select>でいいんですよね?
勘違い解答ならすみません。

---------------------------------------------1つ目の画面-----------
<form action="遷移先ASP" method="post">
  <select name="名前">
    <option value="バリュー値1">データ1
    <option value="バリュー値2">データ2
  </select>
  <input type="submit" value="OK">
</form>
-------------------------------------------------------------------
-----------------------------------------------遷移先ASP-----------
<%= request.form("名前")%>
-------------------------------------------------------------------

POSTならこんな感じです。

うぐいす 1999/12/06(月) 18:52:14
あ、勘違い解答してました。(汗)

>(valueでなくtext)
ということは、さっきの例でいうと、
「バリュー値1」ではなく「データ1」がほしいということですね。

解決策としては、
1) valueとtextは同じ文字列にする。
2) 遷移先ASPでSelect Caseをつかう。
ぐらいしか思いつきません。
役立たずですみません。m(__)m

あき 1999/12/07(火) 10:21:24
うぐいすさん、ありがとうございます。
2)の遷移先ASPでSelect Caseを使うって、
全部のCaseを書くってことでしょうか。
Case、いっぱいあるんです。(T_T)
それともやっぱりvalueとtextを同じにしないと駄目なんでしょうか。

うぐいす 1999/12/07(火) 16:10:20
>全部のCaseを書くってことでしょうか。
はい。そうです。
value値によって、どの文字列かを判断するという方法です。

>それともやっぱりvalueとtextを同じにしないと駄目なんでしょうか。
これが一番、簡単な方法だと思います。

他に考えられるとしたら、
別ファイルを作って遷移先ASPで検索するようにする
でも、これは処理がかなり重たくなるとおもいます。

もしかしたら、JavaScriptなら可能かもしれません。
勉強不足で、具体的なソースは提示できませんが・・・。(汗)

あき 1999/12/08(水) 14:59:49
うぐいすさん、ありがとうございます。
地道に作ることにします。
Javascriptの場合って、前画面中でSubmitかけるときにFunctionとかで値をhidden枠に入れる変数を作っておいて遷移先画面とかで参照する、っていうのでいいのでしょうか。
(言葉の使い方合ってるかな?)

うぐいす 1999/12/08(水) 15:26:18
>Javascriptの場合って、前画面中でSubmitかけるときに
>Functionとかで値をhidden枠に入れる変数を作っておいて
>遷移先画面とかで参照する、っていうのでいいのでしょうか。
大体そんなイメージです。
この発言を書いたときは、Submitをかけるときではなく、
コンボボックスの選択を変更した時に、
hidden枠の変数の値を変更するというイメージでした。
でも、これだとコンボボックスを選択しなおすたびに
JavaScriptが実行されてしまうので、
あきさんの書かれたタイミングでいいと思います。(^^;)

hiro-kim 1999/12/08(水) 16:37:32
valueとtextの同じ組合せデータを,入力HTMLページと出力HTMLページのそれぞれに記述するのは保守しずらい,というのがニーズならば,
value/textファイルを読み出して,入力/出力ページを生成するという手もありますけれど。

-------------------------------------------------------------- page0.txt
01 TRY! ASP
02 トライ! アスプ
03 http://www.winscom.co.jp/asp/

-------------------------------------------------------------- page1.asp
<html><body>
<form method="post" action="page2.asp">
<select name="name1">
<%
ForReading = 1
Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
sFilename = Server.MapPath("page0.txt")
Set objTextStream = objFileSystem.OpenTextFile(sFilename, ForReading)

Do While objTextStream.AtEndOfStream <> True
sLine  = objTextStream.ReadLine
sValue = Mid(sLine, 1, 2)
sText  = Mid(sLine, 4)
%>
<OPTION VALUE="<%= sValue %>"><%= sText %>
<%
Loop
objTextStream.Close
%>
</select><input type=submit></form></body></html>

-------------------------------------------------------------- page2.asp
<html><body>
<%
ForReading = 1
Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
sFilename = Server.MapPath("page0.txt")
Set objTextStream = objFileSystem.OpenTextFile(sFilename, ForReading)

sValue = Request.Form("name1")
sText  = ""
Do While objTextStream.AtEndOfStream <> True
sLine  = objTextStream.ReadLine
If sValue = Mid(sLine, 1, 2) Then
sText = Mid(sLine, 4)
End If
Loop
objTextStream.Close
%>
Value:[<%= sValue %>], Text:[<%= sText %>]
</body></html>

hiro-kim 1999/12/08(水) 17:02:36
>他に考えられるとしたら、
>別ファイルを作って遷移先ASPで検索するようにする
>でも、これは処理がかなり重たくなるとおもいます。

あ,すでに指摘されているんですね。
確かに,valueとtextの組を1つだけ渡すという方法のほうが軽いです。

あき 1999/12/10(金) 14:11:31
[[解決]]
うぐいすさん、hiro-kimさん、ありがとうございました。

結局別ファイルではなく、hiddenにtextを入れて遷移先ページから参照する方法を取りました。
何とか頑張ってやってみます。これからも何かあったらお願いします。

[上に] [前に] [次に]