• 締切済み

ページ移動でsessionを渡す

ADO接続で結果を返す検索システムを作っています。 Search.asp(検索画面) Result.asp(結果画面) View.asp(検索結果詳細) 検索画面のテキストボックスの値を、結果画面でsessionオブジェクトに入れます。結果画面内では、カウントを増やしつつ、次ページへの移動が可能な 画面になっています。 再び、検索画面に戻ったときにテキストボックスの値に元の検索文字列を入れたいのですが、上手くいきません。検索結果画面で、次ページへ行くと、Sessionオブジェクトの値が消えているようです。ページ移動しても保持する方法はないのでしょうか?

みんなの回答

回答No.1

Session.Contentsは通常のページ移動だけでは消えないはずです。 ページ移動の際にサーバーも移動していると話は別ですが。 検索画面・結果画面・検索結果詳細のソースをこちらに載せてみてはいかがでしょうか?。

関連するQ&A

  • フォームを作る際にsessionを使いもしページが元のページへ戻った際

    フォームを作る際にsessionを使いもしページが元のページへ戻った際も値を保持できるようにしたいのですが作り方が分からないので教えて頂けますか??? 具体的には textの場合は<input type="text" name="hoge" value="<?php $_SESSION["hoge"]?>">とすればいいのはグーグルなどで調べ理解できましたが、selectボックスやradioボタンcheckボタンのしたかが分かりません。お手数おかけしますがよろしくお願いします。

    • ベストアンサー
    • PHP
  • 検索フォームから入力されたキーワードをresult.phpというファイ

    検索フォームから入力されたキーワードをresult.phpというファイルで $keyword = $_POST[keyword]; このように受け取っています。 ところが、キーワードによっては1ページで収まらないため、 result.php?p=2 このようなURLで「次のページへ」というリンクにしているのですが $keywordの値を保持していない(?)みたいで思い通りの表示ができません。 このようなページ移動の場合、どのようにしたら受け取った変数の値を保持できるのでしょうか。 ためしに次のようにセッションを使ってみたのですが、 session_start(); $_SESSION["keyword"] = $_POST[keyword]; うまくいきませんでした。 動的に移動する同じファイル内で変数を保持するにはどのようにしたらいいのでしょうか?

    • ベストアンサー
    • PHP
  • Ajaxにおけるセッション

    会社の先輩から 「Ajaxを使ったWebページはセッション(※セッションIDのことを短縮して言ったのかは不明)を持ち続けてしまうことが問題」 と言われたのですが、これは正しいのでしょうか? XMLHttpRequestのオブジェクトから常にopen、sendし続けているのであれば セッションを持ち続けるかもしれませんが、 例えばopen、sendをページのロード時にたった一回しかつかわないページであれば、 最初のreadystateの値が4になった時点で(もう二度とXMLHttpRequestのオブジェクトからはリクエストしないので)コネクションは切れて 放っておくとセッションIDは切れるのではないでしょうか? それともクライアント(ブラウザ)にXMLHttpRequestのオブジェクトが存在している限り、 セッションは切れずに保持されるのでしょうか? よろしくお願いします。

  • セッションオブジェクトの使い方(次画面の渡し方について)

    セッションオブジェクトの渡し方について教えてください。 セッションオブジェクトは、どのタイミングで、次の画面にセッションオブジェクトを渡しているのでしょうか? ▼リクエストオブジェクトを次の画面に渡す場合 request.setAttribute("キー" , 格納したい値); という風に、リクエストオブジェクトの中に値をセットできると思います。 そして、  ・RequestDispatcher rd = request.getRequestDispatcher("画面遷移先URL");  ・rd.foward(request, response); これが実行されたタイミングで、requestオブジェクトに格納した情報を、次の画面に渡していると思いますが ▼セッションオブジェクトを次の画面に渡す場合 いったいどこでセッションオブジェクトを、次の画面に渡しているのでしょうか? セッションの値の入れ方としては session.setAttribute("キー" , 格納したい値); という形でセッションオブジェクトに対して、値を格納しているのだとは思いますが・・・ ここでセットした値を、 どうやって、次の画面にもっていっているのでしょうか? 【不思議に感じているところ】  1.セッションオブジェクトを生成する  2.セッションオブジェクトの中に、値を格納する  3.rd.foward(request, response); で次の画面にリクエストを投げる  4.次の画面で「セッションオブジェクトは飛ばしていない筈なのに、セッションオブジェクトの中には値が格納されている」  うーん・・・  一体どこで、次の画面にセッションオブジェクトを渡しているのでしょうか?

    • ベストアンサー
    • Java
  • Strutsでのセッション保持方法について

    StrutsでWebアプリケーションを開発しています。 画面構成は、 検索一覧画面 ⇒ 詳細画面 という遷移になっています。 そのとき、検索一覧画面の検索条件をセッションに保持し、詳細画面から「戻る」ボタンで、検索一覧に戻ってきたとき、検索一覧画面は、検索条件を保持していることをやりたいのです。 そこで、セッションに詰める方法として、 (1)検索条件の項目一つ一つをひとつのオブジェクトにつめて、そのオブジェクトをセッションに詰める方法。 (2)検索一覧画面のFormBeanの結果部分をクリアし、検索条件だけ入っている状態で、セッションに詰める方法。 (1)は、一つ一つセットしなければならないので、ソースコードは、項目の数分、セットしなければなりません。 (2)は、検索条件部分だけが入ったFormBeanなので、セットは、一回のみ。ただし、検索条件以外の項目は、クリアしなければならない。 検索条件の項目は、だいたい5~15個くらいです。 (1)と(2)でどちらがいいのか、ご指導お願いいたします。

    • ベストアンサー
    • Java
  • セッションをつかったページについて

    メール送信フォームをPHPで作っています。 入力した値を管理するためにセッションを使っているのですが このページから、他のページに移動する際(リンクをクリック)に URLに http://www.xxxxx.co.jp/dir/?PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx のように表示されてしまいます。 できれば、 http://www.xxxxx.co.jp/dir/ のようにセッションIDは表示しないようにしたいのですが どのようにすればいいのか教えていただけないでしょうか

    • 締切済み
    • PHP
  • Active Serve PagesにおけるSession保持

    はじめまして、色々調べたのですがお手上げ状態で困っています。 Active Serve PagesのSessionの保持がされなくて、困っています 2000sp4、IIS5.0、IE6の環境下では保持されていましたが、 Xp、IIS5.1、IE6の環境化では保持されません。 <% response.write (Session.SessionID) %>と書込み、 再度読込をすると、値が変化します。 Cokieはいったん削除をし、「すべてのCokieを受け入れる」 に設定しても変わりません。 どうか宜しくお願いします。

  • PHPのセッションについて

    PHPのセッションについてお尋ねします。 1ページ目でテキストボックスに値を入力させ、ポストで送信。 2ページ目でポストを受け取り、項目が正しく入力されているかチェック。 3ページ目でMySQLに書き込み というシステムを作りかけています。 2ページ目までは上手くできたのですが、2ページ目の変数を3ページ目で渡すところで滞っています。 ザッと調べてみるとセッションというのを駆使して変数の受け渡しができるようなのですが、このセッションの書き方がよくわかりません。 session_start()を入れてみましたが、次のページには引き継がれていませんでした。更に記述が必要なのでしょうか? お詳しい方、詳説または詳説ページの紹介をお願いします。

  • ページ移動 値渡しについて

    sea_clear_skyです。 [環境] OS Win98SE PWS [質問内容] 検索キーワードをTEXTボックスに入力するHTML(1.HTML)から、SUBMITで データベースを検索するASP(サーバスクリプトのASPファイル、1.ASP)に飛びます。 とんだ先のASPファイル(1.ASP)が、データベース検索結果を表示させます。 データベース結果ASP(1.ASP)は1ページに10件表示させます。 その際、データが10件以上ある場合は次へというボタンで次のデータを 表示させたいです。 A HREFからハイパーリンクで表示させる方法はできましたが、 ボタンで作ることができません。 ボタンの際のページ移動と値渡しがわかりません。 A HREFで作った際の Response.Write "<a href=bunkatsu.asp?nm=" & Request("nm") Response.Write "&page_num=" & Request("page_num")+1 & ">" Response.Write "次の10件&gt</a> " この部分を変更したらできると考えています。 RedirectとかWindows.Location.Href等で試しましたができませんでした。 Submitは更新処理をするために<1.ASP>で使っていますので、利用は考えていません。 ご教授願います。 。

  • SessionとViewStateについて

    ASP.NET初心者です。(長文になります) ASP.NET(VS2005。VB)で、作成したWebアプリがあるのですが、 セッション→ViewStateについて、いまいちピンとこない部分がありまして、質問させていただきました。 A画面には、コード入力のテキストボックスと、ボタンが用意されています。 ボタン_Clickのイベントで、入力したコードをSession情報に登録した後、 別ウィンドウでB画面がポップアップ表示されるイメージです。(画面遷移ではないです) ※A画面のボタン_clickイベント内で、  「ScriptManager.RegisterClientScriptBlock(Me, Me.GetType, "popup", _   "window.open(B画面URL,'_blank','height=600~~~');", True)」で、Pageのオブジェクトに登録して、  B画面が起動されるイメージになると思います。 B画面では、Page_Loadイベント内の初回表示時「Not IsPostBack」のときだけ、 A画面で設定したSession情報を変数に設定した後、Session情報をクリアし、 変数に入れた情報をViewStateに登録して[ViewState(コード) = 変数に設定したコード]、 変数のコードを表示させています。 また、B画面は、自動で閉じるようにしたいのでTimerを使っています。 Timer_Tickイベントで、ViewStateに登録したコード取得して、値をDBに登録して、 B画面を閉じる、というのが一連の流れです。 ちなみに、A画面についてはB画面起動後、コード部分はクリアして、常駐しているイメージとなります。 そこで、気になるところが、 A画面でコード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って コード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って・・・というように、 A画面から、何度も繰り返してB画面を起動させたとき、 A画面で設定したSession情報の内容で、B画面のTimer_Tickで、正しく登録されるのか、というところです。 ViewStateについて調べたところ、ページ単位で値を保持してくれる(違うページ間では共有しない)みたいなので、 ViewStateのクリアをしない限り&B画面を閉じない限り、値はそれぞれの画面で保持できているはず。 B画面の1つ目((1)とします)はコードが111の情報、2つ目((2))は222、3つ目((3))は333の情報を、 B画面それぞれのPage_Load時にViewStateに登録しておけば、 B画面(1)のTimer_Tickで111、B画面(2)のTimer_Tickで222、B画面(3)のTimer_Tickで333がそれぞれ登録できると思っています。 このように連続で行うような画面操作で、 A画面で設定したSession情報が上書きされたりする(111が222になってしまうなど)可能性は、あるのでしょうか?

専門家に質問してみよう