• 締切済み

セッションのリセット

JSPで<input type=reset value="リセット">というふうにすると入力していた項目を空の状態にできますが、 セッションを使用して別のページから戻ってきた場合のリセットを押した場合の動作について教えてください。 具体的には、入力画面で名前や年齢等を入力し確認画面に送信します。確認画面でsetAttributeでセッションに登録します。そして確認画面から戻るボタンを押して、入力画面ヘ戻り入力画面のリセットを押しても項目が空にならないんです。        入力画面.jsp→確認画面.jsp 空にすることは可能でしょうか。      

  • arusu
  • お礼率8% (27/308)
  • Java
  • 回答数2
  • ありがとう数0

みんなの回答

noname#227796
noname#227796
回答No.2

キャッシュが効いているのでしょうか? だとすると、ページキャッシュをクリアするように、METAタグを書いてみてはどうでしょう? <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="cache-control" content="no-cache"> ただ、ブラウザによってはうまくいかないかもしれませんが。 もしくは、JavaScriptを使って、 <BODY onLoad="document.forms[0].reset();"> とかやってみるとか。。。 確認画面から入力画面に戻るときに、実は値を渡しており、入力画面でそれをセットしていたりすると意味ないですけどね。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

HTMLフォームのresetは、HTMLのソースに記述されている値に戻す、というものですから、項目が空にならないのだとしたら、ソースが既にそうなっているのでは。 あるいは、JavaScriptで、そこらへんのイベントをオーバーライドしているとか。 いずれにしろ、空にしたければ、そうするためのコードを記述すれば良いでしょう。

関連するQ&A

  • セッションのリセット

    サーブレットを使用して画面Aでリストで選択した項目を別のページ画面Bで出力する画面を作成しています。 今、詰まっているのですが、その画面Bから画面Aに戻るときに画面Bで表示されている項目が画面Aで選択されている状態で表示して、リセットボタンを押すと、デフォルト(奈良)に戻るようにしたいのですが、以下のプログラムですと、セッションで値を受け取っているとリセットを押すとデフォルトにはならずに、以前選んでいた項目が表示されてしまいます。解決法をご教授ください。以下のソースは画面Aを表示するためのものです。 HttpSession hs=request.getSession(true); String city = (String)hs.getAttribute("city"); String nara="";String osaka ="";String kyoto ="";String kobe =""; if(city != null){ if(city.equals("osaka")){osaka = "selected"; }else if(city.equals("kyoto")){kyoto = "selected"; }else if(city.equals("kobe")){kobe = "selected"; } } out.println("<html><head><title>Sessionを使う</title></head><body><br><br><center><br>"); out.println("<form action=response.encodeURL(\"TestSession\") method=POST>"); out.println("<select name=city"); out.println("<option value=nara "+ nara +">奈良"); out.println("<option value=osaka "+ osaka +">大阪"); out.println("<option value=kyoto "+ kyoto +">京都"); out.println("<option value=kobe "+ kobe +">神戸"); out.println("</select>"); out.println("<input type=submit value=送信>"); out.println("<input type=reset value=リセット></form>"); out.println("</center></body></html>"); }

  • Sessionについて

    今、JSPを用いてログイン画面を作成しているのですが、Sessionの使い方がいまいちわかりません。 HttpSession ses = request.getSession(); ses.setAttribute("id",id); これでSessionに格納するのはわかりますが Sessionから値を取り出す方法がわかりません。 どなたか助けてください

    • ベストアンサー
    • Java
  • PHP リセットボタンをクリックしたら一部リセット

    メールフォームとかで、リセットボタンをクリックすると全ての値がリセットしてしまうのですが、全部ではなく、一部だけリセットしないといったものは可能でしょうか? <input size="20" type="date" name="日付" /> /* リセットボタン */ <input type="reset" value="リセット" />

    • ベストアンサー
    • PHP
  • 【PHP】もし、「リセット」ボタン押されたらについて質問

      フォームの所の<input name="Reset" type="reset" value="リセット">で ボタン(リセット)が押されたらの判定なんですが、次ぎの様にやってみましたが どうも、ボタン(リセット)が押されたらの判定が対応されていません。 <?php if($_REQUEST["Reset"]!= ""){ $body = "";$body2 = ""; } ?> 「もし、ボタン(リセット)が押されたら…」の処理がしたいのですが どうしたら良いのでしょうか?教えて下さい。    

    • ベストアンサー
    • PHP
  • セッション変数について

    セッション変数の扱いについて困っていることがあります。 ichiran.jspの画面(商品一覧表) りんご→nyuryoku.jsp?shohinmei=ringoへのリンク みかん→nyuryoku.jsp?shohinmei=mikanへのリンク nyuryoku.jsp String shohinmei=request.getParameter("shohinmei"); session.setAttribute("shohinmei",shohinmei); ... <form method="post" action="koushin.jsp"> ...入力フォーム </fotm> koushin.jsp HttpSession hs=request.getSession(true); String shohinmei=(String)hs.getAttribute("shohinmei"); データ更新のSQLをかける ichiran.jspの画面で 1.りんごを右クリックして新しいウィンドウで開く 2.みかんを右クリックして新しいウィンドウで開く 3.りんごの入力画面を開いているブラウザのSubmitをクリック ↓ 2の時点でsession変数shohinmeiにmikanが入っているので、 りんごのはずがみかんのほうに更新がかかってしまう。 りんごとみかんの入力画面を並列に開いたときに、 それぞれ別のセッションとして生成され、りんごとみかんに関するshohinmeiの 変数領域が別々に確保されるようにする方法はないものでしょうか?

    • ベストアンサー
    • Java
  • sessionの使い方について

    フレームhtmlで下記のPHPを読み込みします。 --menu.php-- <td height="73"> <form method="POST" action="main.php" target="sita"> <input type="image" src="img/jyusyo.gif" width="150" height="50"> <input type="hidden" name="step" value="1"> </form></td> <td height="73"> <form method="POST" action="main.php" target="sita"> <input type="image" src="img/kouza.gif" width="150" height="50"> <input type="hidden" name="step" value="2"> </form></td> ここまで--- --main.php <form method="POST" action="kakunin.php" target="sita"> <?php if(( $_POST["step"] == 1 ) or ( $_POST["step"] == "" )){ ?> 名前 <input type="text" name="name" size="43" value="<?php echo $name ;?>"> 住所 <input type="text" name="adress" size="43" value="<?php echo $adress ;?>"> <?php } ?> <?php if( $_POST["step"] == 2 ){ ?> <title>名前</title> 借入 <input type="text" name="kari" size="43" value="<?php echo $kari ;?>"> 返金 <input type="text" name="henkin" size="43" value="<?php echo $kenkin ;?>">   <?php } ?> <input type="submit" value="送信" name="B1"><input type="reset" value="リセット" name="B2"> </form> ここまで--- <input type="submit" value="送信" name="B1">でアクションを起こさない前でも sessionで値を保持する方法ありますか? 名前、住所などを入力し送信ボタンを押さないで、借入、返金等を入力すると 名前、住所、などは消えてしまいます。 何かいい方法ないでしょうか?

    • ベストアンサー
    • PHP
  • sessionが分かりにくいです

    try4.html <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <title>カンタンアンケート</title> </head> <body> <form action='try4-2.php' method='GET'> 性別:<br> <input type="radio" name="gender" value=0>男性 <input type="radio" name="gender" value=1>女性<br><br> 趣味(複数選択可):<br> <input type="checkbox" name="movies" value=1>映画  <input type="checkbox" name="music" value=1>音楽  <input type="checkbox" name="books" value=1>読書  <input type="checkbox" name="sports" value=1>スポーツ<br><br> ご意見をお書きください:<br> <textarea name="comment" rows="4" cols="40"></textarea><br><br> <input type="submit" value="送信"> <input type="reset" value="リセット"><br><br> </form> </body> </html> ////////////////////////////////////////////////////// try4-1.php <?php session_start(); ?> <html> <head><title>try4-1.php</title></head> <body> <?php $_SESSION = array(total_cnt => 0, male => 0, female => 0, movies => 0, music => 0, books => 0, sports => 0, comment => array("")); ?> //////////////////////////////////////////////////////////////// try4-2.php <?php session_start(); ?> <html> <head><title>try4-2.php</title></head> <body> <?php if ($_GET['gender'] == 0) ++$_SESSION['male']; elseif ($_GET['gender'] == 1) ++$_SESSION['female']; if ($_GET['movies']) ++$_SESSION['movies']; if ($_GET['music']) ++$_SESSION['music']; if ($_GET['books']) ++$_SESSION['books']; if ($_GET['sports']) ++$_SESSION['sports']; $_SESSION['comment'][] = $_GET['comment']; ++$_SESSION['total_cnt']; ?> 登録しました。さらに<A href="try4.html">入力する</A><br> これまでの集計結果を<A href="try4-3.php">表示する</A><br> </body> </html> ////////////////////////////////////////////////////////// try4-3.php <?php session_start(); ?> <html> <head><title>try4-3.php</title></head> <body> <?php echo "これまでにアンケートに応えたのは{$_SESSION['total_cnt']}人です。そのうち<br>"; if ($_SESSION['total_cnt']){ $male_rate = (int)($_SESSION['male'] / $_SESSION['total_cnt'] * 100); $female_rate = (int)($_SESSION['female'] / $_SESSION['total_cnt'] * 100); } else { $male_rate = 0; $female_rate = 0; } echo "男性:{$_SESSION['male']}人 $male_rate %<br>"; echo "女性:{$_SESSION['female']}人 $female_rate %<br><br>"; echo "趣味は映画:{$_SESSION['movies']}人、音楽:{$_SESSION['music']}人、読書:{$_SESSION['books']}人、" . "スポーツ:{$_SESSION['sports']}人<br><br>"; echo "意見:<br>"; foreach ($_SESSION['comment'] as $comment) echo $comment . "<br>"; ?> 集計を<A href="try4-1.php">初期化する</A><br> さらに<A href="try4.html">入力する</A><br> </body> </html> //////////////////////////////////////////////////////// とファイルが4つあるのですがセッション情報はどこに格納されているのでしょうか。TXTファイルでもなさそうなので教えて下さい。

    • ベストアンサー
    • PHP
  • メール送信フォームで。

    CGI初心者です。 下記メールフォームで「内容確認画面を出さないで送信する」の文を削除して、 チェックボックスも削除したいのです。 ただ、フォーム上では削除されているように見えても、送信ボタンをクリックすると、すぐ確認画面が自動的に出てくるようにするにはどうたしら良いのでしょうか。 cgiファイルの設定で行うのでしょうか? 質問に不備がありましたら、補足致しますので、よろしくお願いします。 <input type="submit" VALUE="確認"> <input TYPE="reset" VALUE="リセット"> <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する</font>

    • ベストアンサー
    • CGI
  • php $_SESSIONで値が消える。

    いつもお世話になり誠にありがとうございます。 標記の件。 インプット画面ー>確認画面ー>戻るー>インプット画面 インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。 プログラムを診て、誤りを指摘して頂けないでしょうか? どうぞよろしくお願い致します。           記 <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['email'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!DOCTYPE html> <html lang="ja"> <head> </head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <form method=post> お名前(ニックネーム)<br> <input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br> Eメール<br> <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br> カテゴリー<br> <input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br> 本文<br> <textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br> <input type="submit" name="confirm" value="確認" /> </form> <?php }else if( $mode=='confirm'){ ?> <!--確認画面--> <form method="post"> <?php echo $_SESSION['name']?><br> <?php echo $_SESSION['email']?><br> <?php echo $_SESSION['category']?><br> <br> <?php echo nl2br($_SESSION['message'])?><br> <input type="submit" name="back" value="戻る"/> <input type="submit" name="send" value="送信"/> } </form> <?php } else { ?> <!--完了画面--> <?php } ?> </body> </html>

    • ベストアンサー
    • PHP
  • INPUT(TEXT)フォームのリセット

     テキストのフォームをリセットできない状況で,どうすればよいかご指導いただきたく投稿しました。HTMLファイルから検索ワード"SerchWord"を再検索画面にも表示させるために"GET"で送り,$_GETで受け取るという形にしています。  ちなみに,今回の命令ではタイプをボタンにして,onClickで場所を指定してリセット命令をかけていますが,type='reset'でも,onClick='thisform.reset()'でも,テキストボックス内の文字は消えませんでした。  以下,その部分のプログラムです。 …… if($_GET["SerchWord"] == null || (strcmp($_GET["SerchWord"] , "") == 0)) { echo("<input size='60' type='text' name='SerchWord' value='' />"); } else { echo("<input size='60' type='text' name='SerchWord' value='" . $_GET["SerchWord"] ."' /> "); } echo("<INPUT type='submit' value='検索'><BR>"); echo("<INPUT type='button' value='リセット' onClick='document.Kensaku.SerchWord.reset()'><BR>"); ……  もしかすると悩むレベルではないかもしれませんが,自分にとって簡単なようで,ものすごく悩んでいます。  どなたかご指導いただければ・・・。よろしくおねがいします。

    • ベストアンサー
    • PHP