• ベストアンサー
  • すぐに回答を!

ASPの変数の値をJAVA Script内で使用したいのですが

vfunction ShainSet(){ parent.frmMain.location.href="./Nipo_Calendar.asp?dbID=<ココ>&tNow=<ココ>"; } //--> -------------- 上記のようなJAVA Script内でaspファイルの引数として指定している、dbIDとtNowという変数に対して、 同じASPファイル内(下の方に続いている部分)で取得する値を代入したいのですが、ASPの変数の値をどのようか形でJAVAで記述すればいいかわかりません。 -------------- Set cn = Server.Createobject("ADODB.Connection") ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db\nipo.mdb" Call cn.Open(ConnectionString) MySql="SELECT T_社員マスター.社員ID,T_社員マスター.氏名,T_社員マスター.現場ID " _ & "FROM T_社員マスター " _ & "WHERE T_社員マスター.現場ID= '" & sel & "'" _ & "ORDER BY T_社員マスター.社員ID ;" Set rs = cn.Execute(MySql) Do While Not rs.EOF Response.Write "<Option Name=Shain Value=""" & rs("社員ID") & """>" & rs("社員ID") & ":" & rs("氏名") rs.MoveNext Loop tNow = Now() dbID = rs("社員ID") %> <FORM> <INPUT type="button" value="選択" onClick="ShainSet()"> </FORM> ---------- <%=変数名%>などのように、JAVAの内部に<%%>でくくったASPの変数を使用してもうまく動かないのですが、 何か別の表記方法があるのでしょうか? <ココ>かかれた場所に、ASP内で使用している変数を使いたいのですが。。。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数1196
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2
  • Te-Sho
  • ベストアンサー率52% (247/472)

ASP側で受け取るときですね。 URLに対してMethod="GET"のhttpリクエストだったら ASP側で request.queryString("dbID") request.queryString("tNow") Stringとして取れます。 ちなみにmethod="POST"だったら request.From("dbID") request.From("tNow") ですね。 JavaScript側は文字列をそのままセットしちゃってください。可変にするのだったら以下のようにそのページ内で変数を作って+で連結すればOKです。 parent.frmMain.location.href="./Nipo_Calendar.asp?dbID=" + strdbID + "&tNow=" + strtNow ;

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • ASPでRecordCountが使用できない

    Accessの100件のデータを10行づつブラウザに表示したいのですが、rs.PageCount、rsRecordCountなど色々と試しましたが正しい結果が得られず 困っています。 rs.AbsolutePage、Rs.PageSizなども試してみましたが、やはり結果は-1しか返されません。 Set db1=Server.CreateObject("ADODB.Connection") db1.Provider="Microsoft.Jet.OLEDB.4.0" db1.ConnectionString=Server.MapPath("../master.mdb") db1.Mode=1 db1.Open ' Set rs1=Server.CreateObject("ADODB.Recordset") Rs1.Pagesize = 5 ' keyword = "ABC" ' SQL1a = "SELECT top 5 * FROM dbFILE WHERE dbTABEL Like '%" & Keyword & "%'" Set Rs1=db1.Execute(SQL1a) Response.Write rs1.PageCount このようなリストで試しています。よき方法があれば是非 教えて下さい。 最終的にはSQL 7.0に置き換える予定です。 宜しく、お願いします。

  • DB接続文字列の一般的プログラミング方法について

    DB接続プログラムで Dim connectionString As String Dim Cn As New SqlConnection Dim cmd As SqlCommand Dim ServerName As String = "(local)" 'サーバー名(またはIPアドレス) Dim UserID As String = "sa" 'ユーザーID Dim Password As String = "" 'パスワード Dim DatabaseName As String = "ogawaDB" 'データベース connectionString = "Server=" & ServerName & ";" connectionString &= "User ID=" & UserID & ";" connectionString &= "Password=" & Password & ";" connectionString &= "Initial Catalog=" & DatabaseName Cn.ConnectionString = connectionString cmd = Cn.CreateCommand cmd.CommandText = "SELECT id FROM table1" Cn.Open() Debug.Print(cmd.ExecuteScalar) Cn.Close() cmd.Dispose() Cn.Dispose() のデータベース接続プログラムで connectionStringにデータベース接続情報を書くと思うのですが これを各プログラム毎に記述していたのでは変更が生じた場合 管理が大変だと思うのですがこの記述情報をファイルから読みっとったり して対応するのでしょうか。 一般的の接続文字列の管理方法(プログラミング方法)を 教えてください

その他の回答 (3)

  • 回答No.4
  • Te-Sho
  • ベストアンサー率52% (247/472)

#2,3からです。 意味が分かりました。 ASPから取得した物ではなくJavaScriptにASPで生成したHTMLより値を渡したいと言うことですね。 vfunction ShainSet(){ dbID = document.form1.Shain.value; tNow = document.form1.tNow.value; parent.frmMain.location.href="./Nipo_Calendar.asp?dbID=" + dbID + "&tNow=" + tNow ; } //--> <FORM name="form1" > <% Set cn = Server.Createobject("ADODB.Connection") ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db\nipo.mdb" Call cn.Open(ConnectionString) MySql="SELECT T_社員マスター.社員ID,T_社員マスター.氏名,T_社員マスター.現場ID " _ & "FROM T_社員マスター " _ & "WHERE T_社員マスター.現場ID= '" & sel & "'" _ & "ORDER BY T_社員マスター.社員ID ;" Set rs = cn.Execute(MySql) Do While Not rs.EOF Response.Write "<Option Name=Shain Value=""" & rs("社員ID") & """>" & rs("社員ID") & ":" & rs("氏名") rs.MoveNext Loop tNow = Now() dbID = rs("社員ID") %> <INPUT type="hidden" value=<%tNow%> NAME="tNow"> <INPUT type="button" value="選択" onClick="ShainSet()"> </FORM> でどうでしょうか?スクリプト内で変数に渡さなくても出来ますが取りあえず入れてみました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

詳しい解説ありがとうございました。 POSTで別のASPファイルで変数を受け取るやり方で、ひとまず逃げておきました。 質問に出していますJAVAスクリプトとASPの間に、もう一つ別のフォームタグがあり、フォームタグが二重の状態になって、動作するようになっています。 このフォームの二重構造に問題があるみたいですので、ページの構造を再検討してみます。

  • 回答No.3
  • Te-Sho
  • ベストアンサー率52% (247/472)

#2からです。 ちょっと読んでて勘違いしていましたね。 JavaScriptとしては#1の方の書き方で良いと思います。 問題は取り方ですね。それが私の#2です。 とすると<%=変数名%>で動かないと言うのはどういう事でしょう?後者のaspがコールされているときのURLはどうなっているでしょうか?ブラウザのアドレスバーに値が入っていればスクリプト側はOKです。 取得側の問題だと思います。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • mirurin
  • ベストアンサー率43% (48/111)

parent.frmMain.location.href="./Nipo_Calendar.asp?dbID=" + <% = dbID %> + "&tNow=" + <% = tNow %>; これでどうでしょう? #環境がないのでテストしてません。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • VBのデータグリッドの表示が消えてしまいました。何故でしょうか?

      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" cn.Open mySQL= "SELECT * FROM 2学年 " _ & "WHERE (((所属)='" & frmPW.cmb生徒.Text & "'))" Set rs= New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set DataGrid1.DataSource = rs と記述していて、それまでデータグリッドにデータが上手く表示されていたのに、 接続先のmdbファイルにパスワードを設定して、ConnectionStringの設定部分を   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" & _ "Jet OLEDB:Database Password=seito2;" に変更したところ、データグリッドにデータが表示されなくなりました。 データベースへの接続は上手くいっているようなのですが、何故データグリッドに データが表示されなくなったのでしょうか。 よろしくお願いします。

  • 配列を使ってクエリの値を変数にしたい

    配列を使ってクエリの値を変数にしたいと考えていますが、 変数として見ず、文字列としてみているようです。 *********test.asp*************** kyoku1 = Request.Form("kyoku1") kyoku2 = Request.Form("kyoku2") kyoku3 = Request.Form("kyoku3") (kyoku1~3は前のページのフォームから値を持ってきています。) Dim k(2) Dim m(2) Dim jj jj = 0 k(0) = kyoku1 k(1) = kyoku2 k(2) = kyoku3 m(0) = kyokumei1 m(1) = kyokumei2 m(2) = kyokumei3 Set db=Server.CreateObject("ADODB.Connection") db.Provider = "Microsoft.Jet.OLEDB.4.0" db.ConnectionString = Server.MapPath("DB名") db.open Do While j < 3 Set rs = db.Execute("SELECT テーブル名.* FROM テーブル名 WHERE ((テーブル名.番号)='"&k(jj)&"')") m(0) = rs.Fields.Item("曲名") j = j + 1 jj = jj + 1 Loop Response.Write(" & kyokumei1 & ") Response.Write(" & kyokumei2 & ") Response.Write(" & kyokumei3 & ") 宜しくお願い致します。

  • 二つのMDBファイルの間のデータのやり取り

    おせわになります。みなさんの知恵を貸してください。 いかがシステム構成です。 A.mdb(テーブル:Work1) B.mdb(テーブル:Work2) A.mdbはカレントデータベースです。B.mdbはDSN=KANRIで アクセスしたいです。 現在Work1のデータをWork2に追加したいのですが、どのような方法が考えられますか? ちなみに以下のコードを書いてみました。 -------------------------------------------------- Dim cn1 As New ADODB.Connection, cn2 As New ADODB.Connection Dim rs1 As New ADODB.Recordset, rs2 As New ADODB.Connection Dim com As New ADODB.Command, mysql As String Set cn1 = CurrentProject.Connection cn2.ConnectionString = "provider=MSDASQL;DSN=KANRI" mysql = "insert into Work2 select * from Work1" com.activeconnection = cn2 com.commandtext = mysql com.Execute Set com = Nothing rs1.Close: Set rs1 = Nothing rs2.Close: Set rs2 = Nothing cn1.Close: Set cn1 = Nothing cn2.Close: Set ch2 = Nothing -------------------------------------------------- Work1は見当たらないとエラーが出ました。 どなたか教えてください。 rs1.EoF Loop をまわしながら一行ずつ追加するしかないでしょうか?

  • データグリッド・・・?

    データグリッドにデータを入れたいのですが、入りません。ソースを書きますのでご指摘お願いします。 Set cn = New ADODB.Connection Set rs = New ADODB.Recordset ' 接続文字列を設定 cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:¥aaa.mdb" ' コネクションをオープン cn.Open ' 選択クエリーを作成 strSQL = "Select * From bbb where ID = " & dbid & _ " ORDER BY 年月日 DESC" ' レコードセットをオープン rs.Open strSQL, cn, adOpenStatic, adLockOptimistic set DataGrid1.DataSource = rs ' オブジェクトを閉じる rs.Close cn.Close ' オブジェクトを解放 Set rs = Nothing Set cn = Nothing

  • アクセスVBA。ADO

    CSVから列を分割してテーブルにしたいかったので 下記のコードを記述しましたが、 Dim cn As ADODB.Connection Dim rs As New ADODB.Recordset Dim datacount As Long Set cn = New ADODB.Connection With cn .ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\;" .Properties("Extended Properties").Value = "text;HDR=YES;" .Open End With Set rs = cn.Execute("SELECT * FROM 構成マスタ.csv") datacount = rs.Fields.Count For i = 0 To datacount strsql = "SELECT " & rs.Fields(i).Name & " INTO " & rs.Fields(i).Name & " FROM 構成マスタ.csv;" cn.Execute strsql Next i rs.Close cn.Close Set rs = Nothing Set cn = Nothing SQLを実行するところで、「日付エラー」となってしまいます。 データには特に日付等はないのでエラーになる原因がわかりません。 どなたかご教示いただけますでしょうか。

  • ASPのSession変数を配列にしたいのですが。。。

    ASPのSession変数を配列にして使用したいのですが、どのように表記すればいいのでしょうか? Do Until rs.EOF ID=Session("ID(i)") i=i+1 rs.MoveNext Loop という感じに使用したいのですが。。。

  • Access2000で条件付き検索の方法?

    アクセス2000でWHERE句に 年月日 等の条件付きSELECT文を実行したいのですが 構文等の構成が分かりません。  以前は、EXCELで何とかプログラムが組めたのですが、アクセスは今回初めての試みで、 だいぶ勝手が違い戸惑っています。 「逆引きExcel VBA」、「逆引きVB6」その他「アクセスVBA」本等 文章を探してみましたが、 それぞれ、DAO、ADO、Commandを使うやり方を紹介してるのでが、うまくいきません。 「AccessVBA+SQL実践活用」という本では、次のように書いてあります。 Connectionオブジェクトをつかったプロシージャー cn ,rs, mySQL の変数宣言 Set cn=CurrentProject.Connection Set rs=New ADODB.Recordset mySQL="SELECT ***********  rs.Source=mySQL rs.ActiveConnection=cn rs.Open これでデータが取れて、変数に入れています。あと cn , rs をとじて終了  このほか、Commandオブジェクトを使う方法も紹介していますが、同じようなものです。 この方法だと、rs.Openのところで「引数不足」というコメントが出て、デバッグ中断します。 rs.Open("テーブル名")と書いても「引数不足」とコメントされます。 検索自体は、SQL文のところでWHERE 句 に =年月日 又は、特定の=番号と等しいFIELDの検索 なんですが、その前後の手順がわかりません。 VB6の時のようにConnectionString="MsProvider********** と書く方法の方がただしいのか、 わかりません。この構文も今ひとつ手順が、はっきりわからないので困っています。 ソフトは、Win7(64ビット) Access2000 です。 尚、DAOをつかった、ファイルを読み込みDBテーブルに書き込みするのは出来ています。 わかる人がいたら、是非是非おしえてください。 この文だけで、だいぶ時間をかけてしまいました。  よろしくお願いします。

  • x.aspxとx.aspx.vbの値の受渡について

    asp.net4で開発を実施しております。 FormViewを使ってデータの登録を行おうとしております。 form1.aspx.vbで設定した変数を、form1.aspx側のsqlにて使いたいと思っているのですが、どのようにすればよいでしょうか? 【form1.aspx.vb】 sub aaa = 1 end sub 【form1.aspx】 : <asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:DB1ConnectionString %>" DeleteCommand="UPDATE Table1 SET [Flg1] = @aaa WHERE [CD] = @CD" <DeleteParameters> <asp:Parameter Name="CD" Type="String" /> <asp:Parameter Name="aaa" Type="String" DefaultValue="<%= aaa %>" /> のように作ってみたのですが、うまくいきません。 どの様にすればよいのかご教示いただければと思います。  よろしくお願い致します。

  • DataGridに表示されない

    VB6でMySQL4.1に接続して MySQL内にあるデータベース"sample"の テーブル"総合"をDataGridに表示したいのですが できません。 エラーメッセージは "実行時エラー '7004': 行セットにはブックマークを設定できません" とでます。 どうしたら表示されるのでしょうか? Private Sub form_load() Dim cn As ADODB.Connection 'オブジェクト Dim rs As ADODB.Recordset 'データベースに接続 Set cn = New ADODB.Connection 'データベース:Sheet1 cn.ConnectionString = "Provider=MSDASQL.1;" _ & "Data Source=sample" cn.Open 'レコードセットの取得 Set rs = New ADODB.Recordset rs.ActiveConnection = cn rs.Source = "総合" rs.CursorType = adOpenStatic rs.LockType = adLockOptimistic rs.Open Set DataGrid1.DataSource = rs End Sub

  • ADOでRecordsetオブジェクトをレコードソースに設定したい

    Access2000を使っています。リンクテーブルを使わずに、ODBCで繋いだDBのテーブルをフォームのレコードソースにセットしたいのですが、可能でしょうか。 宜しくお願いします。 Private Sub FormNoKansu() Dim cn as New ADODB.Connection Dim rs as New ADODB.Recordset Dim strSql as String 'ODBCでサーバーに接続 cn.ConnectionString = "ODBCでMySQLに..." ... strSql = "SELECT * FROM ..." rs.Open strSql, cn 'ここに[rs]を入れられたらと思っています Me.Recordset = "" End Sub