うちのカレーにはこれが入ってる!って食材ありますか?

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側で代入すればいいのでしょうか?

A 回答 (2件)

ミスが


× out.print("\"" + title + "\"");
○ out.print("\"" + title[i] + "\"");
    • good
    • 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 + "\"");
}
%>);

数値データの場合はダブルクォーテーションは不要など調整はいる
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報