• ベストアンサー

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の内容が取得出来るとこまでは確認しています、サブミット前に表示をさせたくてこういう作りになっています

質問者が選んだベストアンサー

  • ベストアンサー
noname#18558
noname#18558
回答No.3

補足の回答をを読みましたが、どうも勘違いしているような気がします。 Java(jsp)でDBアクセスをしているかもしれませんが、そのコードが実行されるのは、サーバーがJSPをHTMLに生成するその瞬間ですよ。 クライアントにJSP(HTML)が表示された時には、Javaは関係ありません。 サーバーに送信しないでJavaScriptのファンクションからJavaのコードを実行することは出来ませんよ。

その他の回答 (2)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 順を追うと、 このページにアクセス。 aaaaの入力欄が表示される。 aaaaにDBのキーを入力する。 onBlurでhenkan()が呼ばれる。 *1 ここでデータベースより情報を取得して表示したいということですよね。 java側のzzに入った値をテキストフィールドに表示。 しかし、 henkan()が呼ばれても、DBにはアクセスしませんよ。 何故か。 jspでJavaScriptを書き出してhenkan()というメソッドを作りました。 henkan()はサーバ上でHTMLとして生成されています。 (生成された時には、DBより値の取得を実行している) JavaScriptでいくらそのメソッドを読んでも、 サーバにはアクセスしませんので、その時点で動的に値を取得することは不可能です。 (ブラウザがローカル上で処理をしてる為) >アクセス部分をインポートして呼んでいますのでサーバーサイドに処理を投げている事には違いありませんよ。 初回アクセス時はもちろん処理は投げられていますが、postなりgetなりで 入力した情報をサーバに対してリクエストを投げないと、 データの取得は不可能です。

noname#18558
noname#18558
回答No.1

サーバーサイドのJavaとJavaScriptを勘違いされておられませんか? DBにアクセスするには一旦サーバーサイドに処理を投げないと出来ませんよ。

go_swallow
質問者

補足

jspでjava(javascriptではありません)を動作させています。勘違いはしていませんので。jsp上でjavaのコネクション、アクセス部分をインポートして呼んでいますのでサーバーサイドに処理を投げている事には違いありませんよ。(ただしサブミットなしでファンクション契機でやっているので通常のサーバサイドに較べて苦労しています..)

関連するQ&A

  • inputのvalueを変数として使うには

    下記ソースのaタグ内map.phpのパラメータ({緯度}・{経度}の部分)にinputで入力した値を渡したいので すが、どうすれば良いでしょうか? <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php?lat={緯度}&lng={経度}">マップを表示</a> </form>

  • inputの中身を書き換える方法について

    下記で書き換え実行ボタンを押下すると、初期値1は変更後1に変わるのですが、初期値2と初期値3が変わりませんでした。 そのため、inputの中を書き換えるには、divの場合とは違う書き方をしないといけないのかと思ったのですが、どのように記述すればよいかわからなかったのでアドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="JavaScript" type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> <!-- $(function(){ $("#change").click(function(){ $("#text1").html("変更後1"); $("#text2").html("変更後2"); $("#text3").html("変更後3"); }); }); // --> </script> <title>title</title> </head> <body> <form> <input id="change" type="button" value="書き換え実行" /> </form> <br /> <div id="text1">初期値1</div> <input type="text" name="text2" id="text2" value="初期値2" /> <input type="hidden" name="text3" id="text3" value="初期値3" /> </body> </html>

    • ベストアンサー
    • AJAX
  • value内に変数を入れたい

    お世話になります。 <INPUT type="text" name="seikai" size="10" value="" onfocus="this.blur()"> このvalue=""の中にjavascriptで定義した変数を入れる方法ってあるんでしょうか? 

  • value文のないInputタグ

    Inputタグの内容を送信したいのですが、 例えば、フォームF1のテキストエリアT1に、 document.F1.T1.value = "テスト"; として、JavaScript側から値(value)を指定します。 この場合、 <form method="post" name="F1"> <input type="text" name="T1"> </form> とするだけで、ブラウザに、「テスト」と表示させられますよね。 しかし、Inputタグの中に「value」の値が無いため、 他のURLに、テキストエリア「T1」の内容を送信することができません。 このようにJavaScript側から値(value)を指定したInputタグの値を送信する方法について教えてください。

  • javaの変数又はデータの共有 

    jspで作ったプログラムがあるこのような場合変数を共有する方法はありますでしょうか? <%@ page contentType=\"text/html; charset=Windows-31J\" %> <%  String c =あいうえお;  %>//javaの変数 <html><head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-31J\"> <title>****</title> <SCRIPT LANGUAGE=\"JavaScript\"> <!-- function chek(){ alert(c); //JavaScriptの変数 } // --> </SCRIPT> </head> ・・・・・・中略・・・・・・ </body> </html>

  • フォームのvalueを変更する方法

    下記はjavaScriptで書いたものですが、javaScriptが有効になっていないと機能しないので perlで同じことをやりたいのですが、フォームのvalueを変更する方法とinnerHTMLの様なボタンをクリックするとテキストを変更する方法が分かりません。 ヒントでも良いので教えていただけませんか? <HTML> <HEAD><SCRIPT language="JavaScript"> <!-- function nextA(){ var data = document.formA.data.value; data++; document.formA.data.value = data; } //--> function nextB(){ var data = document.formB.data.value; data++; document.formB.data.value = data; document.getElementById("print").innerHTML = data; } //--> </SCRIPT> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY> <FORM name="formA"> <input name="data" value="1"> <INPUT type="button" value="足す" onclick="nextA()"> </FORM> <FORM name="formB"> <SPAN id="print">1</SPAN> <INPUT type="button" value="足す" onclick="nextB()"> <INPUT type="hidden" name="data" value="1" > </FORM> </BODY> </HTML>

    • ベストアンサー
    • CGI
  • URLにパラメータを記述して結果を得るには?

    URLにパラメータを記述して結果を得るには? フォームに入力する内容を、URLに記述してアクセスしたいのですが、 うまくいきません。どこが悪いのでしょうか。 ■うまくいかないURL(自作) http://www.*********/test.php?AAAA=A1&BBBB=B1&CCCC=C1&DDDD=D1&submit=E1 ■フォームのソース <form action=test.php method=post name=test> <input type=hidden name=AAAA value=A1> <input type=text maxlength=4 name=BBBB value="B1"> <input type=text maxlength=2 name=CCCC value="C1"> <select name="DDDD"> <option value="D1">DDDD1</option> <option value="D2" selected="selected">DDDD2</option> </select> <input type=submit value=E1> <input type=submit NAME="FFFF" value="F1"> </form> ■補足 ソースに対してご意見があるかもしれませんが、ソースは変更できません。 そういった前提でお願い致します。

    • ベストアンサー
    • PHP
  • タグの中のname, value値の取得

    ある文字列中に次のほぼ同値なinputタグ、 1:<input type="text" name="A" value="B"> 2:<input type='text' name='A' value='B'> 3:<input type=text name=A value=B> がある場合、この中からtext, A, B を抽出しようと思っています. (さらに、1,2のA, B に半角スペースが含まれる場合も考慮) 自分なりの方法の概略は、 $_ = $str; ~ /(<input[^>]*?>)/; $tag = $1; として、<input・・・>を得て、 $tag =~ /name=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $name = $1; $tag =~ /value=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $value = $1; としていたのですが、nameとvalue値が\sを含む場合や、<input>タグの中の"と"の間に > が含まれる場合に正しく動作しません。 何いい方法はないでしょうか.

    • ベストアンサー
    • Perl
  • foreachでループした変数を他のサブルーチンに受け渡す方法を教えてください。

    ループして変数に入る値を他のサブルーチンに渡すにはどのようにしたらいいのでしょうか?以下に記述を書きましたが、sub mainの中の$dataをsub htmlの中で表示させて、sub mainでループさせた値をすべてsub mailへわたしたいのです、hiddenタグで<input type=\"hidden\" name=\"all\" value=\"$all\">とやってもうまくいきませんでした。@inの中をループさせるので@inをそのままかけばいいのでしょうか?これもうまくいきませんでした。。ようはループさせた値をすべてメールで送信したいのです。どうしたらうまくできますでしょうか? sub main{ foreach(@in){ ($name1,$value1) = split(/=/,$_); $data="$name1 : $value1"; print "$data"; print "<br>"; } sub html{ print "Content-type: text/html\n\n"; print <<EOF; <html> <head> </head> <body> &main; <form action="" method=""> <input type=\"hidden\" name=\"all\" value=\"$all\"> <input type=\"submit\" value=\"送信する\"> </form> </body> </html> EOF } sub mail { ####省略しますが、ここはメールの送信の記述です。 }

    • ベストアンサー
    • Perl
  • <input name="" type="text" value="****" size="15">

    <input name="" type="text" value="****" size="15"> PCではvalueが表示できますが携帯電話では表示されません。 アドバイスお願いします。

専門家に質問してみよう