• 締切済み

jspからjavascriptの変数引継ぎ

jspでデータベースからデータを取ってきて格納した配列をjavascriptでも同じように変数として扱いたいのですがどうすればいいでしょうか? javascriptによってオンマウス時に枠がポップアップし、javascript内で設定した文字を枠内に表示しようとしているため、jspからデータを引き継ぎたいのです。 jspではtitleとhonbunは配列で <form name="form_title"> <input type="hidden" name=title value="<%= title %>" > </form> <form name="form_honbun"> <input type="hidden" name=honbun value="<%= honbun %>" > </form> このように名前をつけ、javascriptでは var taitoru[]= document.form_title.title.value; var honbun[]= document.form_honbun.honbun.value; このように変数に代入しています jsp側ではSPANでオンマウス時にjavascriptを呼び出し、javascriptでは文字が配列のhonbun[0]等をポップアップした枠の中で表示させるようにさせたいのですが 枠そのものがポップアップしません 上記のjavascriptでの変数への代入部分をコメントアウトすると、枠自体は表示されます 配列を丸ごとjavascriptで配列に代入できないのであれば、1データずつ引き継ぐという方法でもいいのですが、どのようにjavascript側で代入すればいいのでしょうか?

みんなの回答

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

ミスが × out.print("\"" + title + "\""); ○ out.print("\"" + title[i] + "\"");

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.1

あまり上手い説明はできませんが・・・ JSPはサーバ側、JavaScriptはクライアント側。 考え方として、JSPと一緒にJavaScriptが動くのではなく、JSPでJavaScriptの“コード”を作成する。 JavaScriptの変数にJSPの値を入れるには、JSPで「var a = 0」のようなJavaScriptコードを作成する。この時の 0 がJSPの変数値の場合、クライアント側にもJSPの値でJavaScriptが実行される。 最近、JavaもJavaScriptも触っていないので、細かな書式が不正かもしれませんが、以下をサンプル程度にどうぞ。 文字列の例 var title = "<%= title %>"; 文字列配列の例 var title = new Array(<% for (int i = 0; i < title.length; i++ ) { if ( i != 0 ) { out.print(","); } out.print("\"" + title + "\""); } %>); 数値データの場合はダブルクォーテーションは不要など調整はいる

関連するQ&A

  • jsp~jspにhiddenを使って変数を飛ばしたい

    jspを勉強しています。 変数に代入した値をhiddenを使い飛ばしたいのですが、 うまくいきません。 String keyID = "123456"; <input type="hidden" name="S_id" value="keyID" /> 例えばこのような形で変数keyIDに値を代入して、hiddenで飛ばして 飛び先のjspで変数keyIDの値を取得したいのです。 どなたかアドバイスいただけるとありがたいです。

  • javascriptの変数値をjspへ渡す方法?

    下記の方法で、テキスト項目から、javascriptで値を取得できました。 この値を、jspの変数Stringへ格納するには、 どうすればよいでしょうか? <%= "<script type=\"text/javascript\" charset=\"UTF-8\">" %> <%= "target = document.getElementById(\"outaddress1\");" %> <%= "target.innerText = document.forms.zip_form.address1.value;" %> <%= "target = document.getElementById(\"outaddress2\");" %> <%= "target.innerText = document.forms.zip_form.address2.value;" %> <%= "target = document.getElementById(\"outaddress3\");" %> <%= "target.innerText = document.forms.zip_form.address3.value;" %> <%= "</script>" %>

  • StrutsでJSPからListを受け取りたい

    JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。 尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。 ~~~JSP~~~ <input type="hidden" name="str1" value="a"/> <input type="hidden" name="str2" value="b"/> <input type="hidden" name="str3" value="c"/> ~~~~~~~~ 上のJSPから下記のFORMに詰めたい ~~~form~~~ private List strList; public List getStrList(){ return strList; } ~~~~~~~~ 又、こちらで調べたところ下記のようにすればいけるようですが欲しい値は一つのためBeanを使用しなくても実現可能ではないかと思い、質問させていただきました。 よろしくお願い致します。 ~~~JSP~~~ <input type="hidden" name="testArray[0].str" value="a"/> <input type="hidden" name="testArray[1].str" value="b"/> <input type="hidden" name="testArray[2].str" value="c"/> ~~~~~~~ ~~~FORM~~~ private List list; public TestBean getTestA(int iIndex) { while (this.list.size() <= iIndex) { this.list.add(new TestBean ()); } return ( TestBean ) this.list.get(iIndex); } public Object[] getTestArray() { return list.toArray(); } public static class TestBean { private String str = ""; public String getStr() { return str; } public void setStr(String str) { this.str = str; } }

    • ベストアンサー
    • Java
  • JSP→JSP フォームチェック

    困っているので助けてください。 まずプログラムの説明をさせてもらいます。 JSPからfromをつかってJSPにフォーム情報を送ります。 プログラムはこんな感じです。 <form action="abcdefg.jsp" method="post"> <input type="hidden" name="abc" value="abc"> <input type="hidden" name="def" value="def"> <input type="checkbox" name="aa" value="aa"> <input type="checkbox" name="bb" value="bb"> <input type="checkbox" name="cc" value="cc"> <input type="submit" value="次へ"> </form> これをabcdefg.jspで受け取る場合 String hidden_abc = request.getParameter("abc"); String hidden_def = request.getParameter("def"); とhiddenは必ず値が入っているのでこれで受け取れるのですが チェックボックスは選択しているかどうかわからないので上の記述では だめなようなのですがどのようなプログラムを書いたらいいのですか? 説明がうまく出来なく申し訳ないです。よろしければ教えてください。

    • ベストアンサー
    • Java
  • javaScriptの変数をJavaの変数に代入する。

    jspで作ったプログラムがあるこのような場合変数を共有する方法はありますでしょうか? 以下の場合iの(JavaScript)値をjavaの変数iに代入したい場合どうすればいいでしょうか? <%! String s[] ={A,B,C,D,E} %> function chek(){ for(i = 0;i< 5 ;i++){ <%! int i =%> = i;//←この部分です //document.form1.desc.valueにはBの値が入っている if(<%! s[i] %> == document.form1.desc.value){ alert("Bです"); } }

  • JSP内での配列の値取得方法。

    こんにちは。 -------- (略) <SCRIPT LANGUAGE="JavaScript" > function NextPage(no){ with( document.frm1 ) { hidNO.value = no; hidPlanId.value = 「ここに配列から取得した値を表示したい」; action = "Next.jsp"; submit(); } (略) <FORM name="frm1"> <% for(int i=0; i<(DBより取得した配列).length; i++) { ROW(HashMap継承の配列クラス) row = rows[i]; %> <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(1)%>" > <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(2)%>" > <TD><INPUT TYPE="button" NAME="btnDet<%= i %>" VALUE="詳細表示" onClick="NextPage('<%= i %>');" > </TD> <% } %> </FORM> ******* 上記のhidkeyのvalue値をJavaScript内でi番目の値を 取得するにはどのように記載したらよいのでしょうか・・・。 他のクラス等を使っているため、うまくコードが表現 できていないかもしれませんが、 もしこれでわかった方、ぜひ教えてください。

    • ベストアンサー
    • Java
  • javascript・JSP関連

    理解できないことがあったので質問させていただきます。 javascriptで定義した変数をJSPに返すことはできますか? 例えば、 JSPで <select name="" id="aaa" onchange="bbb();"> javascriptで function bbb(){ var ccc = document.getElementById('aaa'); ddd = ccc.options[ccc.selectedIndex].value; //選択された項目の値を取得する } dddの変数をJSTL(標準タグライブラリ)の <c:set var="eee" value="ココに返す"> みたいなことは、できませんでしょうか? かなり簡潔に書いてしまいましたが、 ご理解して頂いた方は解答・返答の程、よろしくお願いします。

  • javascriptで取得した値を、FORMで送信する

    いつもお世話になっております。 jspからwindow.openを使い、別ウインドウを表示しました。 別ウインドウでの質問です。 javascriptで前のページ(jsp)の情報を受け取り、それを次のページ(jsp)へFORM(POST)で送りたいのですが、うまくいきません。 ご教授下さい。 <HTML> <HEAD> <script type="text/javascript"> <!-- function sent() { var num = window.opener.document.aaa.number01.value; ここで前ウィンドウの情報を取得しています return num; } function sub() { document.bbb.submit(); } // --> </script> </HEAD> <BODY onload="sub()"> <form name="bbb" METHOD="POST" action="http://okwave.jp"> <input type="hidden" name="timeid" value=""> <input type="hidden" name="number00" value="1"> <input type="hidden" name="number01" value="sent()"> <!--<input type="hidden" name="number01" value="204038054776">--> 当たり前ですが、コメントにしている部分にすると次のページでうまくいきます。 </form> </BODY> </HTML>

  • JSPとJavaScriptの連携について教えて下さい

    JSPとJavaScriptの連携について教えて下さい 当方、現在システム開発会社入社新人で、JavaやJSP、TomcatやOracleなどを使用してシステム開発をしている者です。 【用意されているデータ】 ・メイン画面:A.jsp ・空白確認用JavaBeans:Blank.java ・登録処理用JavaBeans:Regist.java 【やりたいこと】 JSPのメイン画面(A.jsp)で、テキストボックス欄に名前を入力し、登録ボタンを押します。 データベースへ登録を行うのですが、その前にJavaBeans(Blank.java)を利用して入力された名前欄のテキストボックスが空白(=未入力)かどうかをチェックさせ、OKなら新たに登録用の(Regist.java)を呼び出しますが、もし未入力の場合は「入力して下さい」旨のメッセージボックスを表示し処理を中断させます。 【教えてほしい問題点】 ボタンを押したらJavaScriptへ入り、そこでBlank.javaを呼び出し、さらにIF条件を用いて空白/登録を分けようとしています。普通にJSP内ではできました。しかしその命令文をそのままJavaScriptの中に入れると全く機能しなくなってしまいます。このサイトの類似質問を拝見し、『JSPはサーバ、JavaScriptはクライアントサイドで動くものであり、そもそもが違うのでそのままでは使えず、JavaScript用に加工して使う必要がある』という所まで突き止めました。しかし、『じゃぁ実際どうすれば良いの?』という所がわかりません。 以下にコードを記します。ご回答頂ける方がいましたら、ぜひご教授下さい。 なお、本来は初期表示時点の判定があったりともう少し複雑なコードですが、とりあえず今回の問題を解決できると思われる部分のみ記述しました。タグの位置やスペルミスなどがもしかしたらあるかもしれませんが、元はコンパイルが通るものなので、その点はご了承下さい。 【コード】 ◇◆A.jsp◆◇ <%@page import = 省略> <jsp:useBean id='Check' scope='session' class='パッケージ.Blank'> <jsp:useBean id='R' scope='session' class='パッケージ.Regist'> <html> <head> <title>登録</title> // JavaScript(自力でできる途中まで記述しました) <script lauguage="JavaScript"> <!-- function check(){ var a = document.form_A.NAME.value; ■■■■■■■■■■■■■■■■■■■■■ ■この中身がわかりません■ ■■■■■■■■■■■■■■■■■■■■■ if(Check.Blank() == false){ alert('空欄です。入力して下さい'); }else{ R.Regist(); } } --> </script> </head> <body> // 入力欄nameの情報をパラメータとしてNAMEでsetする Check.setNAME(request.getParameter("name")); // 入力欄作成 <form name="form_A"> <INPUT type="text" name="NAME"> // ボタン作成 <INPUT type="submit" value="登録ボタン" onClick="check();"> </form> <body> </html> ◇◆Blank.java◆◇ public class BlankBean{ // メンバ変数 private String NAME;  // コンストラクタ public BlankBean(){ NAME = null; } // 空白チェック(未入力はfalseを、OKの場合はtrueを返す)  public boolean Blank(){ if(NAME == null){ return false; } return true; } // setによるアクセスメソッド public void setNAME(String i){ NAME == i; } よろしくお願い致します。

  • VBAをJavaScriptに変換したいです

    JSPとJavaScriptを使い、 フォーム1とフォーム2を連動させたいと考えています。 内容はフォーム1の中のキストボックス(複数行の中のどれか一つ)横のボタンをクリックすると、フォーム2が開きます。 フォーム2では検索が出来るようになっており、 検索画面で気に入る結果が見つかった場合は、 その内容(テキストボックス)横のボタンをクリックします。 するとフォーム2の検索結果が、フォーム1のボタンをクリックした行のテキストボックスに代入されるというものです。 VBAで記述すると以下のプログラムになります。(こちらは完璧に動作します) これをJSPとJavaScriptで記述するとどうなるでしょうか? VBA版の下にjavaScript版を記述してみたので、採点をお願いします。 しばらくプログラムを実行する環境から離れているため、 動作確認ができません。 けれどどう動くのか気になって仕方ないので…。 どうぞよろしくお願いします。 -----------VBA版--フォーム1(代入先)----------- Private Sub ボタン1_Click() DoCmd.OpenForm "フォーム2" End Sub -----------VBA版--フォーム2(検索)----------- Private Sub ボタン2_Click() Forms!フォーム1!詳細.Form!コード = Me!コード DoCmd.Close acForm, "フォーム2" End Sub ***** --------JavaScript版--フォーム1(代入先)-------- <form1> while(rs.next()){ ・・・ <input size="45" type="text" name="Name" value=""> <input type="hidden" name="CD" value=""> <input type="button" value="..." onClick="window.open("search.jsp" , "_blank");"> ・・・ } <input type="submit" value="設定"> </form1> --------JavaScript版--フォーム2(検索)-------- <Script Type="text/javascript"> <!-- function sub_catch(objName){ var fcd=document.form2.CD.value(); var fn=document.form2.Name.value(); if(objName == "value"){ document.form1.Name.value=fn;  document.form1.CD.value=fcd; } } //--> </Script> <form2> while(rs.next()){ ・・・ <input type="text" name="Name" value="<%= name %>"> <input type="text" name="CD" value="<%= code %>"> <input type="button" value="決定" onClick="sub_catch("value")"> ・・・ } </form2>

専門家に質問してみよう