- ベストアンサー
JSPでOptionボタンのOnOffをきっかけに処理を行いたいのですが
HP上に表示されているオプションボタン◎が●になったら或いはその逆にクリックされたら普通のボタンのクリックと同じように処理の起動は可能でしょうか、またその時にボタンオンオフの値を引き継ぐことは出来ますか。 JSPの中で記述したいのですが、 宜しく御願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
よけいこんがらがるかもしれませんが、 Formのチェックボックスで、自分自身を呼び出し、 サーバーサイドの処理(java)とクライアントサイドの処理(javascript) を行うJSPファイルを作りました。(ほとんどゴミプロです。) サーバーサイドの時刻とクライアントサイドの時刻を表示します。 (testform.jsp) 中身 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>TestJsp</title> <body> <% Calendar date = Calendar.getInstance(); String hh = Integer.toString(date.get(Calendar.HOUR)); String mm = Integer.toString(date.get(Calendar.MINUTE)); String ss = Integer.toString(date.get(Calendar.SECOND)); String server_time = hh + ":" + mm + ":" + ss; %> <form action="testform.jsp" name="form1" method="post"> Local_Time:<input type="text" id="local_time" name="local_time" value=""><br> Server_Time:<input type="text" id="server_time" name="server_time" value="<%= server_time %>"><br> チェックする<input type=checkbox id="chk" name="chk" value="checked"> </form> <script type="text/javascript"> document.form1.reset(); var chk=document.getElementById("chk"); var local_time=document.getElementById("local_time"); var date = new Date(); local_time.value=String(date.getHours())+":"+ String(date.getMinutes())+":"+String(date.getSeconds()); chk.onclick=function(){ if(chk.checked==true){ document.form1.submit(); chk.checked=false; } } </script> <% hh = Integer.toString(date.get(Calendar.HOUR)); mm = Integer.toString(date.get(Calendar.MINUTE)); ss = Integer.toString(date.get(Calendar.SECOND)); if(request.getParameter("chk")!=null){ %> <script type="text/javascript"> (function(){ local_time.value="<%= request.getParameter("local_time") %>"; var back=confirm("現在のサーバーの時間は<%= hh+":"+mm+":"+ss %>です。\n前のページに戻ります"); if(back==true){history.back()}; })(); </script> <% } %> </body> </html> これPHPでやると、 <?php header("Content-type:text/html;charset=UTF-8"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>TestPhp</title> <body> <?php $server_time=date("G:i:s"); ?> <form action="testform.php" name="form1" method="post"> Local_Time:<input type="text" id="local_time" name="local_time" value=""><br> Server_Time:<input type="text" id="server_time" name="server_time" value="<?php echo $server_time ?>"><br> チェックする<input type=checkbox id="chk" name="chk" value="checked"> </form> <script type="text/javascript"> document.form1.reset(); var chk=document.getElementById("chk"); var local_time=document.getElementById("local_time"); var date = new Date(); local_time.value=String(date.getHours())+":"+ String(date.getMinutes())+":"+String(date.getSeconds()); //chk.checked=false; chk.onclick=function(){ if(chk.checked==true){ document.form1.submit(); chk.checked=false; } } </script> <?php if(isset($_POST['chk'])){ print <<<EOT <script type="text/javascript"> (function(){ local_time.value="{$_POST["local_time"]}" var back=confirm("現在のサーバーの時間は{$server_time}です。前のページに戻ります"); if(back==true){history.back()}; })(); </script> EOT; } ?> </body> </html> なんか似てるような、にてないような...
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
サーバー側でHTML出力前に実行している部分<% %>と、 クライアント側で実行している部分htmlタグのレンダリングと javascriptの実行を、整理して考えた方がよいでしょう。 クライアント側では決して、サーバー側の変数やプロシジャー にアクセスできないし、サーバー側では決してjavascriptは実行出来ません (おたがい最初に1回だけ値を引き渡す(POST/GET/PRINTの事)はできますが...)
補足
言われていることが何となくしか理解出来ません。 ここがポイントだと思います。 最初にActionFormからBeanを起動してデータ処理をしてJSPからJava(HP作成)を経由して表示されるのだと思っています。 であるからして一回だけと言われているのだと思います。 とすると、オプションボタンの入力でデータを処理するにはもう一度ActionFormを呼ぶということですか。 もう少し教えて下さるよう御願いします。
- nine999
- ベストアンサー率44% (512/1140)
フォームのラジオボタンを制御するということでしょうか? もちろん、その状態によって値を得ることはできますし、押した時点で値を得るか、制御の中で値を参照するか、その流れの中でやりやすい方でやってみると良いかと思います。
お礼
ラジオボタンを制御は分かりました。ありがとうございます。
お礼
ありがとうございます。昨日は外出しておりPCを見ませんでした。やってみますので宜しく御願いします。先ずは取り敢えずお礼まで