- ベストアンサー
JAVAからの変数を動的にINPUTタグのvalueに反映させる方法
<%@ page contentType="text/html; charset=Windows-31J" import='java.io.*,java.util.*,java.text.*,java.sql.*%><HEAD> <META http-equiv='Content-Type' content='text/html;charset=Shift-JIS'> <TITLE>xxxxx</TITLE> <% String aa = ""; %> <SCRIPT TYPE='text/javascript'> <!-- function henkan(){ <% // DBアクセスし結果を代入する(略) zz = アクセスした項目; //out.println(zz); %> document.Main.bbbb.value = <%=zz%> ; } //--> </SCRIPT> <BODY> <FORM name=Main method='post' action='nnnn' DBキー<INPUT TYPE = 'text' name=aaaa VALUE = '' onBlur='return henkan()'> 内容<INPUT TYPE = 'text' name=bbbb VALUE = '' > 途中略 </FORM> </BODY> </HTML> aaaaはDBのキーです aaaaの入力後DBをアクセスして、そこから引っ張った項目内容のzzを動的にbbbbのvalueに設定し画面表示をさせたいのですがうまく表示されません(document.Main.bbbb.value = <%=zz%> 句がうまくいっていないようです) DBの内容が取得出来るとこまでは確認しています、サブミット前に表示をさせたくてこういう作りになっています
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
補足の回答をを読みましたが、どうも勘違いしているような気がします。 Java(jsp)でDBアクセスをしているかもしれませんが、そのコードが実行されるのは、サーバーがJSPをHTMLに生成するその瞬間ですよ。 クライアントにJSP(HTML)が表示された時には、Javaは関係ありません。 サーバーに送信しないでJavaScriptのファンクションからJavaのコードを実行することは出来ませんよ。
その他の回答 (2)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 順を追うと、 このページにアクセス。 aaaaの入力欄が表示される。 aaaaにDBのキーを入力する。 onBlurでhenkan()が呼ばれる。 *1 ここでデータベースより情報を取得して表示したいということですよね。 java側のzzに入った値をテキストフィールドに表示。 しかし、 henkan()が呼ばれても、DBにはアクセスしませんよ。 何故か。 jspでJavaScriptを書き出してhenkan()というメソッドを作りました。 henkan()はサーバ上でHTMLとして生成されています。 (生成された時には、DBより値の取得を実行している) JavaScriptでいくらそのメソッドを読んでも、 サーバにはアクセスしませんので、その時点で動的に値を取得することは不可能です。 (ブラウザがローカル上で処理をしてる為) >アクセス部分をインポートして呼んでいますのでサーバーサイドに処理を投げている事には違いありませんよ。 初回アクセス時はもちろん処理は投げられていますが、postなりgetなりで 入力した情報をサーバに対してリクエストを投げないと、 データの取得は不可能です。
サーバーサイドのJavaとJavaScriptを勘違いされておられませんか? DBにアクセスするには一旦サーバーサイドに処理を投げないと出来ませんよ。
補足
jspでjava(javascriptではありません)を動作させています。勘違いはしていませんので。jsp上でjavaのコネクション、アクセス部分をインポートして呼んでいますのでサーバーサイドに処理を投げている事には違いありませんよ。(ただしサブミットなしでファンクション契機でやっているので通常のサーバサイドに較べて苦労しています..)