- ベストアンサー
隠しフィールドをVBScriptでの受取る方法
初めての投稿です。 ぜひ、おしえてください。 隠しフィールドのデータを次のページ(VBScript)での受取り方法がお聞きします。 default.aspファイルに下記を記述しています: <FORM NAME="MyForm" method=Post Action="./sub.asp"> <INPUT TYPE=Hidden VALUE="<% Response.Write MyData %>" Name="MyData"> <INPUT type="submit" name="cmdSend" value="送る"> </Form> sub.aspファイル(次ページ)に下記を記述しています: <SCRIPT LANGUAGE="VBScript"> Dim temp temp = MyForm.MyData.Value </SCRIPT> 上記の記述文では、データの引渡しができませんが、 (sub.aspページでMyFormがエラーになります) どなたか、正しい書き方を教えてもらえませんか? すみませんが、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> > </SCRIPT> の間で受取ったデータを > <SCRIPT LANGUAGE="VBScript"> > </SCRIPT> の処理の間に渡したいんですが、 > できますでしょうか。 サーバーサイドとクライアントサイドの処理の違いを理解していれば簡単な話ですが・・・ <SCRIPT LANGUAGE="VBScript"> Dim temp temp = <%= Request.Form("MyData")%> </SCRIPT>
その他の回答 (2)
- hequil
- ベストアンサー率65% (242/372)
<SCRIPT LANGUAGE="VBScript"> </SCRIPT> という処理はクライアントサイドの処理ですので サーバーサイドスクリプトで動作することを明示するために <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> </SCRIPT> または先頭行に <%@ LANGUAGE="VBScript" %> と記述します。 つまりktyoさんが要望される処理を行うには <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Dim temp temp = Request.Form("MyData") </SCRIPT> または <%@ LANGUAGE="VBScript" %> Dim temp temp = Request.Form("MyData") と記述する必要があります。 参考までに
補足
ご回答ありがとうございます。 「RUNAT="Server"」でデータの受取ができました。 ありがとうございました。 大変恐縮ですが、もう一つをお聞記したいんですが。 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> </SCRIPT> の間で受取ったデータを <SCRIPT LANGUAGE="VBScript"> </SCRIPT> の処理の間に渡したいんですが、 できますでしょうか。 本当にすみません、 よろしくお願いいたします。
- teapot
- ベストアンサー率40% (2/5)
default.aspからsub.aspを呼び出すのですね。 ということは、sub.asp内のコードのtemp=MyForm.MyData.Valueのところを、temp=Request.Form("MyData")と書き直してやればよいと思います。(temp=Request.Form("MyData").valueかも・・・お試しください) 呼び出し元(=Request)のフォーム内オブジェクト、ということです。 微妙に間違ってたらごめんなさい。試してませんので。 ただ、呼び出し元から何かを受け取るとき、Requestを使用する、ということはASPの基本的なことですし、ktyoさんのコードの最大の間違いです。 がんばってください。
補足
ご回答ありがとうございました。 IISのことがまだよくわかりません、 これから勉強するところです。 もうしわけありません。 で、temp = <%= Request.Form("MyData")%> の行でエラーは発生しました。 「ステートメントの末尾が不正です」というエラーです。 もう少し自分で調べてみるべきなんですが、 もし、良ければアドバイスをいただけませんでしょうか。 本当にすみません。