0

誰か助けてください。スクリプト ブロックで "requestID" JavaScript 変数を使用し、それを SQL クエリに使用したいと考えていました。しかし、私がそれをすると、うまくいきません。

requestID= aReqId[iSelReq];
<%
    Dim sqlQuery 
    Dim sqlQuery2
    Dim sRecords
    Dim sRecords2
    Dim iVersion1   
    Dim iFieldSeqId2
    Dim vValue
    Dim iNumofReqTypes
    Dim iLoop


    for iLoop=0 to iNumofReqTypes

        sqlQuery = "SELECT iVersion, iFieldSeqId FROM tblUsrAcntFieldsDtlMst, tblReqTypeMst WHERE tblReqTypeMst.ireqTypeID = tblUsrAcntFieldsDtlMst.iSysid and iSysID = '509' and iversion = (select max(iVersion) from tblUsrAcntFieldsDtlMst where iSysID = '509')  and cReqDisable = 'N' order by iFieldSeqId,ixCoordinate, iYCoordinate"

        sRecords = getRecords(sqlQuery,bResult)
        if bResult then
            iVersion1 = sRecords(0,iLoop)
            iFieldSeqId2 = sRecords(1,iLoop)
        end if 
        sqlQuery2 = "select vValues from tblNewUsrAcntReqDtlTxn where iReqID = " & requestID &"   and iSysID = " & SysID &" and iVersion = " & iVersion & " and iFieldSeqID = " & iFieldSeqId & ""
        bResult = false
        sRecords2 = getRecords(sqlQuery2,bResult)
        if bResult then
            vValue = sRecords2(0,0)
        end if 
    next                        


%>  
4

2 に答える 2

1

サーバー側コードでクライアント側変数を使用することはできません。ただし、サーバー側のコードが最初に実行されるため、クライアント側のコードでサーバー側の変数を使用することはできます。

ここで Javascript の AJAX を使用して、変数データを使用してクラシック ASP ページを呼び出し、データベースの結果を取得し、結果をページにポストすることができます。

先端

あなたの例では、sqlQuery と sqlQuery2 を廃止して、1 つだけを使用できます。sRecords と sRecords2 も同じです。1 つだけ持ってください。これらのタスクごとに 2 つの変数を入力する必要はありません。そのような小さなループでは大きな違いはありませんが、コードとリソースを節約することをお勧めします。

于 2012-07-29T00:17:30.810 に答える
1

ここでいくつかの基本的なことが欠けていると思います。これは .asp ページの一部だと思います。

Javascript はクライアント側の言語です。つまり、ページをロードするブラウザでJavascript コードが解析および実行されます。VB 部分はサーバー側の言語なので、サーバーによって実行されます。クライアントとサーバーは 2 つの異なる世界です。requestID変数はクライアント側の部分でのみ認識されるため、サーバー側のコードで変数を直接使用することはできません。

したがって、その変数の値を知りたい場合は、まずその値をサーバーに送信する必要があります。これを行うにはいくつかの方法があります... AJAX 経由でフォームを投稿する... 次に、その値を受信して​​現在のセッションに保存するには、サーバー側にリスナーが必要です。その後、VB コードで使用できます。

于 2012-07-28T09:23:37.260 に答える