1

FSO = Server.CreateObject( "Scripting.FileSystemObject")を使用して、「csImageFile」と呼ばれるASPユーティリティを使用してファイルをコピー/保存しようとしています。

現在、私が持っているFSOコードは別の.aspページにあります。これは、ユーザーがオプションを選択したときにページから呼び出されます(value = "xxx.asp ..."を使用してコードページを呼び出します)。これは正常に機能します。

問題は、FSOコードページのresponse.redirectedが呼び出し元のページにリダイレクトされ、更新によってデータが失われることです。

select / optionの「onlclick」で、元の呼び出しページのサブルーティングにコードを配置してFSOコードを呼び出すようにします(したがって、更新を回避します)。私はこれをさまざまな方法で試しましたが、成功しませんでした。私は現在、それ自体がVBscriptサブルーチンを呼び出すjs関数を呼び出しています。これは正しくないかもしれませんが、私は今少し迷っている非常に多くの順列を試しました。

ページ上

<option onclick="calljsSub()"...

スクリプト

<script language="JavaScript">
    function calljsSub(){
    //alert("js called");
    VBFunc();
    }
</script>

<script language="VBScript">
    Sub VBFunc()
        SET FSO = Server.CreateObject("Scripting.FileSystemObject")
        If FSO.FileExists ( "path to file") Then
                Set Image = Server.CreateObject("csImageFile.Manage")
                Image.ReadFile "path to file"
                Image.WriteFile Server.MapPath("path to new file")
        end if
        Set FSO = Nothing
    End Sub

VBScript関数は何もしないようです。おそらく、更新せずにコードを実行する別の方法がありますか?どんなアドバイスでも大歓迎です。

私はクリスマス前からこれを解決しようとしてきたので、アドバイスをいただければ幸いです。

マークありがとうマーク

4

2 に答える 2

1

ここでの問題は、クライアントで何が起こっているのか、サーバーで何が起こっているのかを混同していることです。

click event = client
javascript code = client
VB Script = server

クライアントからサーバー上の関数を呼び出すことはできません。これらは異なるマシンです。URL、つまりASPページを呼び出す必要があります。このASPページでは、行われているリクエストを確認し、送信されたリクエストパラメータを取得し、それらのパラメータ(この場合はVBFunc())に基づいて実行するコードを決定する必要があります。

これは、Webページの動作の最も基本的な機能です。

ページ->リクエスト->サーバー->レスポンス(新しいページ)

はい、AJAX手法を使用して、更新せずにコードを実行できますが、最初に基本を正しく機能させるようにしてください。

于 2012-01-06T15:31:47.220 に答える
0

助けようとしている人に感謝します。メインページの非表示のiframeを介してaspページを呼び出すことでこれを整理しました。乾杯。

于 2012-01-17T18:39:59.870 に答える