• 締切済み

ボタンを押してセッション変数を保存できるでしょうか

レガシーASPにてWebのページを作っております。 押したリンク(ボタン)によって異なる値をセッション変数に保存したいのですが、 この様な事は可能でしょうか? OnClickイベントはJavascriptですし、 Session.Contents("~")はVBSですので、 JavascriptからVBSを呼べるか? という質問になってしまうのでしょうか。

みんなの回答

  • guruguru2
  • ベストアンサー率29% (39/132)
回答No.1

こんにちわ。 >OnClickイベントはJavascriptですし VBScriptでも大丈夫ですよ。 <script language="VBScript"> ↑って感じでやったことあります。 でも今回のような場合なら、ボタンをSubmitにして フォームのActionを別ページに指定して そのページ内でセッションを変更して、 また元のページに戻ってくる。 というやり方ではだめですか?

kuruppo
質問者

お礼

ご回答ありがとうございました。 ページを別に作らないとダメそうですね。 根本的に見直しを図りたいと思います。

関連するQ&A

  • セッション変数への値の代入方法について

    レガシーASPでチェックボックスやラジオボタンをクリックしたら サブミット等のページ遷移ではなく同じページ内で即座にその値を セッション変数へ代入させる方法はあるのでしょうか?

  • SQL結果の件数分、リンクを作成する。

    ASP.net で、リスト画面 list.aspx を作成しています。 目的は、SQL結果件数により数が不定のリンクの作成と、 リンクごとに異なる値をセッションに持たせての画面遷移です。 (イメージ添付画像です) 以前、PHPとJavaScriptでWebページを作成していた頃は 可変変数を使用してid値の異なるボタンを作成し、 それらのボタンに同じJavaScript (id値を引数とする)を onclick時に実行させ、異なるセッション値を持たせ画面遷移をしていました。 それをASP.net(VB)でやるにはどうすればよいのか、 またこの考え方が手段として妥当であるのか、わからず相談致します。 ・同じクリックイベントを呼ぶボタンをSQL結果件数分作成 ・ボタン1個1個にSQL結果の値を持たせる (どうやって?) ・オンクリックイベントは上でボタン1個1個が持つ値を引数として動く と、いった事が出来れば良いのかと考えていますが、 上述の不安と、またなかなか参考に出来るサンプルコードを 見つけることも出来ず、皆様に相談させて頂きます。 何卒よろしくお願いします。

  • 助けて下さい!!セッション変数が消えてしまいます。

    いつもお世話になっています。 セッション変数に値をセットして、 あるボタンをクリックするとNEWウィンドウが 開かれて、そのセッション変数を使って処理を したいのですが、何故かセッション変数が消えてしまいます。 社内のパソコンでは上手く動くのに同じプログラムをほかのパソコンに入れたらセッション変数が消えてしまう現象がでています。 「教えて!goo」をみてセキュリティーの設定もやってみたのですが・・・ ちなみに上手く動くのはIE6.0で動かないのはIE5です。 このバージョンの違いもなにか影響しているのでしょうか? よろしくお願い致します。

  • セッションにはどんなデータを保存するべきか

    セッションにどんなデータを保存していいのかよくわかりません。 私はセッションというのはプログラムでいうところのstatic変数みたいな物かと考えているのですが、 この認識であっているでしょうか? 具体的にはセッションにはユーザID等のWebシステム上全体で保持するべき値のみが許されて、A,B,Cの3つの画面間でのみ共有するような値はセッションに保存してはいけないという具合です。 抽象的な質問ですが、よろしければご回答下さい。

  • 思うように セッションの破棄 ができない

    ASPを使ったログイン機能を持ったページを作っています。 ログインしたときにセッションIDを使って直リンクを避けるような 機能を持たせたのですが、サーバーの負荷を避けるために、ログアウト ボタンを作って ログアウトボタンを押したらセッション情報を破棄 するようにしたら、どうもページを読み込んだときに すぐに破棄してしているようで うまくできません ソースは <%@ Language = "VBScript" %> 以下HTMLヘッダー類 <script language="JavaScript"> <!-- function owari(){ <% Session.Abandon %>//セッション破棄 parent.location.replace('../login/login.asp?stn=2');//ページ移動 } //--> </script> 以下HTMLのボディー <INPUT type="button" value="ログアウト" onclick="owari()"> 以下色々なソース ボタンを押したら JavaScriptを呼び出し 破棄してページ移動するように作ったのですが これ自体は問題なく作動するのですが、 <% Session.Abandon %>//セッション破棄 がはいると、なぜかページを開いたときに 呼び出してもいないのに 破棄されてしまっているようで、通常のページ移動もできなくなります セッション破棄の1行を抜くと 全てきちんと作動しますが これではサーバーのセッションタイムアウトまでメモリが残るから良くないのです。 また、VBScript内に Sub haki() Session.Abandon .. .. End sub として <script language="JavaScript"> <!-- function owari(){ <% haki %> } //--> </script> と言うようにしても、同じ不具合になります JavaScriptはfunctionにすると呼び出されるまでは実行されないと思います。 またVBScriptのSubプロシージャも呼ばれるまでは実行しないと思っています。 ただ、今の状態を見る限り、このあたりの認識が間違っているのかなと思っているのですが、 根本的な原因とその解決策が分からず困っています。 どなたかご教授くださいますと幸いです。 よろしくお願いします

  • 別ブラウザにセッションを渡す事ってできますか?

    お世話になります。 VBもASPも初心者に近いので、説明不足もあるかと思いますが、 よろしくお願いいたします。 <概要> VBで、WebBrowserを利用してフォーム内にASP1を表示する作りにしました。 表示したASP1上でボタンを押すと別のASP2を新しいブラウザで表示する作りになっています。 <問題> 新しいブラウザでASP2を表示する際にASP1からのセッション変数が 引き継がれず、消えてしまいます。 OSの環境はWindowsXPです。 Web環境はIEです。 VBは6.0です。 ASPは.NETではありません。 実際に初めのASP1を表示する箇所が下記です。  Form1.WebBrowser1.Navigate2 "ASP1"  Form1.Show そして、"ASP1"からASP2を表示する時が下記です。 ※ここはjavascriptを使用しています。 function Button_onClick(){  newWin = window.open("ASP2", "newWin") } <やりたい事> ASP1で使用しているセッション変数を ASP2でも使用したいのです。 ASP1のセッションIDをASP2に渡して、そのセッション変数を使うとか強引な方法とかあるのでしょうか? ちなみに、VB6.0を使用せず、IEのブラウザでASP1からASP2を呼ぶとセッションは切れません。 よろしくお願いします。

  • 【緊急】セッション変数を別のサーバーに渡すことはできる?

    うまく説明できないかもしれないですが、説明します。 今、WEBサーバ と DBサーバ があります。 ASPはすべてWEBサーバにデータベースはすべてDBサーバにあります。 WEBサーバからDBはODBCを介して参照しています。 ASPで作ったログインページがWEBサーバ上にあります。 ログインした時、セッション変数を使ってログインし、 また、ある程度時間がたつとセッションが切れてログインページに 戻らせるような仕組みにしていて、全ページにその処理をいれています。 今、実現したいことは ログインページだけをWEBサーバに 置いたままにして、ASP(HTML)ファイルをDBサーバ に移動した後でも動かしたいのです。 (1)WEBサーバ上のセッション変数をDBサーバに渡してやりたいのですが、 可能でしょうか?可能ならばどのようにすればよいでしょうか? ASPで使っている言語はVBScriptです。 WEBサーバにはDBに関係ない、メニューなどだけを置いて DBに関係するページはDBサーバに置きたいのです。 OS WINDOWS2000 使用ブラウザ IE 3,4,5,6 (バージョンは特に今はどれでも構いません) どうか、どなたか手がかりだけでも教えて頂けませんでしょうか? よろしくお願い致します。

  • サーバー上の全セッション変数を取得する方法

    お世話になります。 ASPでは、各クライアントで使用する変数をセッション変数に保管することができます。 セッション変数は、サーバーのメモリ上で保管されているというそうです。 サーバー上で、現在保持しているセッション変数を、全て取得(表示)したいのですが、 いろいろ調べましたが、わかりませんでした。 ご存知の方アドバイスいただけないでしょうか? よろしくお願いいたします。 ちなみに、クライアントで、 下記を実行すると、そのクライアントのセッション変数は取得できます。 Dim Key For Each Key in Session.Contents Response.Write Key & "=" & Session.Contents(Key) & "<BR>" Next

  • PHPのセッション変数 絞り込み検索

    PHP Version 5.1.6 flash actionscript2.0 最初の検索条件をセッション変数['first']に保存し、 (GETにより、種別を判断しています。 ~~/index.php?kind=A&value=1という形) 絞込検索時(値はページ内のチェックボックスからPOSTで受け取り、hiddenタグで、type=newを受け取ります。)に 最初の検索条件をセッション変数['first']から取り出すようにしています。 また絞り込み検索時でなければ、とりあえずいったん保存用の セッション変数['first']を初期化しています。 ここで、ページ内にフラッシュのNEWというボタンがあり、その中に var kind = "new"; get_URL("http://~~/index.php", "_blank","GET"); とだけ記述して、ページへkind=newという検索種別を渡すように しているのですが、挙動がおかしくなる場合があります。 [正常な動きをする場合] 1、ページ内のNEWのフラッシュボタンを押す。 予想通りの最初の検索ができる。 (この時点で、セッション変数['first']に"new"が入っているのは 確認済みです。) 2、ページ内のチェックボックスで、絞込み検索をかける。 予想通り、最初の検索条件+絞り込み条件を加えた検索ができる。 [異常な動きをする場合] 1、ページ内のリンクから最初の検索をする。 (~/index.php?kind=A&value=1)を押す。 (この時点で、セッション変数['first']に"A"が入っているのは 確認済みです。) 2、ページ内のチェックボックスで、絞込み検索をかける。 予想通り、最初の検索条件+絞り込み条件を加えた検索ができる。 3、ページ内のフラッシュのNEWボタンを押す。 予想通り、再度別条件での検索ができる。 4、ページ内のチェックボックスで、絞込み検索をかける。 なぜか、セッション変数['first']に、"A"が入ったままになっている。 よって、2の検索に変わってしまう。 ただし、このフラッシュボタンからではなく、たとえば ~/index.php?kind=new というGETで送るタイプのリンクからでは、予想通りの動きをします。 このあたりの挙動につきまして、ご教授いただければ幸いです。 下記コードです。(処理に関係ない部分は省略しております。) session_start(); session_register("first"); //パラメータを受ける。 //絞込検索でなければ、セッション変数を初期化 if($_REQUEST['kind'] != "more") { unset($_SESSION['first']; } switch($_REQUEST['kind']){ case "A": $_SESSION['first']= "A"; break; case "new": $_SESSION['first']= "new"; break; //絞込み検索 case "more": break; }

    • 締切済み
    • PHP
  • ホスト名に"_"を含む場合のSession変数維持

    Windows 2000 Server環境を使用しています。 サーバーのホスト名に"_"を使用しており、ASPにてCookieが使用できないことを知りました。 単純にホスト名を変更すればよいのですが、他のアプリでも使用しており、変更することが難しいのが現状です。 Session変数がダメならとDimで試してみましたが、ページが偏移すると値は破棄されてしまいました。 ホスト名を変更せずにSession変数(またはDim)の値を維持させる方法はありませんでしょうか。 なお、Application変数は通るのですが、ユーザーごとに値が格納できないためNGとなりました。 宜しくお願いいたします。

専門家に質問してみよう