• ベストアンサー

隠しフィールドを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がエラーになります) どなたか、正しい書き方を教えてもらえませんか? すみませんが、よろしくお願いいたします。

  • ktyo
  • お礼率0% (0/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.3

> <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> > </SCRIPT> の間で受取ったデータを > <SCRIPT LANGUAGE="VBScript"> > </SCRIPT> の処理の間に渡したいんですが、 > できますでしょうか。 サーバーサイドとクライアントサイドの処理の違いを理解していれば簡単な話ですが・・・ <SCRIPT LANGUAGE="VBScript"> Dim temp temp = <%= Request.Form("MyData")%> </SCRIPT>

ktyo
質問者

補足

ご回答ありがとうございました。 IISのことがまだよくわかりません、 これから勉強するところです。 もうしわけありません。 で、temp = <%= Request.Form("MyData")%> の行でエラーは発生しました。 「ステートメントの末尾が不正です」というエラーです。 もう少し自分で調べてみるべきなんですが、 もし、良ければアドバイスをいただけませんでしょうか。 本当にすみません。

その他の回答 (2)

  • hequil
  • ベストアンサー率65% (242/372)
回答No.2

<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") と記述する必要があります。 参考までに

ktyo
質問者

補足

ご回答ありがとうございます。 「RUNAT="Server"」でデータの受取ができました。 ありがとうございました。 大変恐縮ですが、もう一つをお聞記したいんですが。 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> </SCRIPT> の間で受取ったデータを <SCRIPT LANGUAGE="VBScript"> </SCRIPT> の処理の間に渡したいんですが、 できますでしょうか。 本当にすみません、 よろしくお願いいたします。

  • teapot
  • ベストアンサー率40% (2/5)
回答No.1

default.aspからsub.aspを呼び出すのですね。 ということは、sub.asp内のコードのtemp=MyForm.MyData.Valueのところを、temp=Request.Form("MyData")と書き直してやればよいと思います。(temp=Request.Form("MyData").valueかも・・・お試しください) 呼び出し元(=Request)のフォーム内オブジェクト、ということです。 微妙に間違ってたらごめんなさい。試してませんので。 ただ、呼び出し元から何かを受け取るとき、Requestを使用する、ということはASPの基本的なことですし、ktyoさんのコードの最大の間違いです。 がんばってください。

関連するQ&A

  • VBscriptの初歩的な例題が分かりません。

    VBscriptを勉強していて、 VBscriptではじめるWEBプログラミングという本を読んでいるのですが、 いきなり躓いてしまいました。 リスト2-17という例題がのっていたのですが、良く理解できません。 <html> <head> <title>VBScript_Sample17</title> <script type="text/vbscript"> <!-- Option Explicit Sub selectData() dim i dim no dim myPet For i=0 to myForm.pet.length-1 If myForm.pet(i).Checked=True Then myPet=myPet & "[" & myForm.pet(i).Value & "]" no=no+1 End If Next If no>0 Then Msgbox(myPet & "が選択") Else Msgbox("選択なし!") End If End Sub --> </script> </head> <body> <form id="myForm"> <input type="checkBox" name="pet" value="らんちゅう">らんちゅう<br> <input type="checkBox" name="pet" value="桜錦">桜錦<br> <input type="checkBox" name="pet" value="ハムスター">ハムスター </form> <button onClick="selectData()">確認</button> </body> </html> Sub selectData()の中の For Nextステートメントの For i=0 to myForm.pet.length-1 の意味が分かりません。 0から最終値myForm petになるまでlength-1 だから長さを一つずつ短くする? 二つ目の条件文の myPet=myPet & "[" & myForm.pet(i).Value & "]" もよくわかりません。 For i=0 to myForm.pet.length-1 for文は0から 二つ目の条件文の myPet=myPet & "[" & myForm.pet(i).Value & "]" がよくわかりません。 myPetの初期値が書いていないので0から始めればいいのですか? よくわかりません、、、 どなたか教えてくださいよろしくお願いします。

  • VBScriptで未入力のチェック(クライアントサイド)

    ある程度の入力チェックをIEにて行わせたいのですが 入力チェックをして「OK」ボタンをクリックしても 次ページへ移動してしまいます。 メッセージを表示させて未入力の欄にフォーカスを動す方法を 教えてください。(何か入力されていたら次のページへ移動) よろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE=vbscript> <!-- Sub window_onload FAQForm.text1.focus End Sub Sub submit1_onclick if FAQForm.text1.value="" then msgbox "未入力です。" exit sub end if End Sub --> </SCRIPT> </HEAD> <BODY> <FORM NAME="FAQForm" METHOD="post" ACTION="FAQ.asp"> <P><INPUT name=text1></P> <P><INPUT type=submit value=Submit name=submit1></P> </FORM> </BODY> </HTML>

  • サーバサイドで取得した内容をテキストボックスに値を表示する

    クライアント側で入力したキーにより、サーバサイドでデータベース検索を行い、その結果をテキストボックスに表示させたいのですが、 <INPUT TYPE="TEXT" NAME="ANSER" VALUE= "<% = .Fields("ANSER").Value %>"> SESSION("ANSER") = .Fields("ANSER").Value <INPUT TYPE="TEXT" NAME="ANSER" VALUE= "<% = SESSION("ANSER") %>"> <INPUT TYPE="TEXT" NAME="ANSER" %> <script LANGUAGE="VBScript"> myForm.ANSER.value = <% = SESSION("strchiku") %> </SCRIPT> などとやってもうまくいきません。 変数だとうまくセットされないようです。 ちなみに、ASPで、FORM をSUBMITすると自分自身を呼び出すようになってます。 <HTML> <% データベース検索処理 %> <FORM> <INPUT> </FORM> </HTML> どなたかお知恵をお貸しくださいませんか。

  • [VBScript]ラジオボタンでform送信

    HTML内でVBScriptを用いて、以下のようなことをしたいと思っています。 <tr>   <td nowrap align="center">東京 or 大阪 </td>   <td><input type="radio" name="ikisaki" value="0" checked>東京 <input type="radio" name="ikisaki" value="1" >大阪 </td> <form method="post" action="xxxx.asp" name="form"> <tr>  <td nowrap align="right">市名</td>  <td nowrap><font size="+2"><%=strCitNm%></font></td> </tr> <tr>  <td>   <input type="submit" name="A1" value="送信">  </td> </tr> 上記なようなラジオボタンが2つあったとして、[送信]を押したときに ラジオボタンのチェックが「東京」なら action="tokyo.asp" に、 「大阪」なら action="oosaka.asp"へform送信を行いたいと思っているのですが、 HTML内でVBScriptを使用する場合、どのような記述にすればいいのかがわかりません。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • VBScript実行時のエラー

    MSDNサイト http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/vbslooping.asp の下記の使用例を実行すると 「オブジェクトがありません。:'Document.frmForm.Elements(...)'」のメッセージが表示され スクリプトエラーになってしまいます。 どうすれば正常に実行できるしょうか。 OS:WinXP ------------ <HTML> <HEAD><TITLE>Forms and Elements</TITLE></HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- Sub cmdChange_OnClick Dim d 'Create a variable Set d = CreateObject("Scripting.Dictionary") d.Add "0", "アテネ" '複数のキーと項目を追加します。 d.Add "1", "ベオグラード" d.Add "2", "カイロ" For Each I in d Document.frmForm.Elements(I).Value = D.Item(I) Next End Sub --> </SCRIPT> <BODY> <CENTER> <FORM NAME="frmForm" <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Button" NAME="cmdChange" VALUE="Click Here"><p> </FORM> </CENTER> </BODY> </HTML>

  • VBScriptでHTMLのForm内のselectをコントロールするには?

    javaScriptの例はたくさんあるので大よそは理解できたのですが、VBScriptでやるとうまく動きません。 document.form_name.id_name.options.length は効いているようです。 document.form_name.id_name.options[0].text document.form_name.id_name.options[0].value では値が入りません。 どうすれば動くでしょうか? ----test.html---- <script language="VBScript"> <!-- Sub change() document.term.minute.options.length = 1 document.term.minute.options[0].text = "aa" document.term.minute.options[0].value = "aa" End Sub // --> </script> <html> <head><title>test</title></head> <body> <form name="term" METHOD=POST ACTION="report.asp"> 時: <select onChange="change" name="hour"> <option>23 <option>24 </select> <BR> 分: <select name="minute"> <option>00 <option>10 <option>20 <option>30 <option>40 <option>50 </select> <input type=submit name="confirm" value="レポート"> </form> </body> </html>

  • VBscript で複数テキストがあるこういう時どうやればいいの?

    <form name="MyF"> <% For nI = 1 to 10 %> <input type="text" name="test<%= nI %>"> <% Next %> </form> で10個のテキストボックスを作って 仮にあるボタンを押した時に すべてのテキストボックスに "aaaa"と書き込む時 クライアントサイドのVbscript で <script language="vbscript"> Sub Allaaa() Dim i For i = 1 to 10 MyF.test & i.value="aaaa" Next End Sub </script> のようなことをしたいのですが、 テキストボックスをこのように扱うことは 不可能なのでしょうか? 開発環境 Windows2000 IE3.02以上 使用言語 【VBscript】 java ではなくて Vbscript で実現したいのです。 また、今は10個のテキストボックスですが 10は可変です。

  • name属性に[]付の名前を指定した処理

    理由があり、下記の様にname属性に配列(?)を指定しています。(下記はスクリプトエラーになります。) <HTML> <HEAD> <script language="JavaScript"><!-- function input(obj1, obj2) { obj2.value = obj1.value } // --></script> </HEAD> <BODY> <FORM name="myform"> <INPUT type="text" name="text[1]" onchange="input(this, document.myform.text[2])" /> <INPUT type="text" name="text[2]" onchange="input(this, document.myform.text[1])" /> </FORM> </BODY> </HTML> 当然ながら、text[1]をtext1にし、text[2]をtext2にすれば全く問題無く動作します。nameとしてこのままtext[n]のままでこのエラーを回避するにはどうしたらいいのでしょう。以上、よろしくお願いします。

  • リセットさせるにはどうしたらいいでしょうか?

    下記のような配列のフォームでボタンを押したらテキストフォールドの値を空にしたいのですがどのように記述したらいいのでしょうか? ご教授宜しくお願いします。 <form name="myform">  <input type="text" name="no[100]" value="abc">  <input type="text" name="no[102]" value="der">  <input type="text" name="no[105]" value="ghi">            .            .           動的に増える </form> ※ document.myform.elements["no[100]"].value = ""; みたいに書けば個別には空にすることは出来たのですが。 elementsの順番で空にすることがどうしてもうまくいきません。 document.myform.elements[0][0].value = "";みたいに。 document.myForm.elements['no[]'].lengthで個数を取得して順番に空にするってことがしたいのですが、<input type="text" name="no[]" value="abc">だったらうまくいくのかもしれないですけど、no[値]があるとどうもうまくいきません。 宜しくお願いします。

  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

専門家に質問してみよう