質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

2回答

5549閲覧

Servlet での アラート表示する際に変数も入れたい

退会済みユーザー

退会済みユーザー

総合スコア0

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2016/04/22 05:37

編集2022/01/12 10:55

DBから読み取った氏名(NAME)にリンククリックでアラートを表示させようにしました。
アラート表示の際に、
「氏名 : 山田 太郎
メール : taro@aaa」のように、
「氏名:」までは文字で、「山田 太郎」は DB から読み込んだ名前を変数で、
それぞれの名前にアラートを表示させることに苦戦しています。

どのように、修正したらよいでしょうか?

DBの例)

NAME MAIL
ーーーーーーーーーーーーーーーーーー
山田太郎 taro@aaa
山田花子 hanako@aaa

try {
// DBの読み込み
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
sql = "SELECT * FROM PERSON";
rs = stmt.executeQuery(sql);
int count = 0; // 件数

out.println( "<style type=\"text/css\">.table {border-collapse: collapse;}.table th {background-color: #00ccff;</style>"); out.println( "<table class=\"table\" border=1><tr><th width=\"210\">氏名</th><th width=\"230\">メールアドレス</th><th width=\"100\"></th></tr>"); // DBの内容を人数分、一覧表にして表示する while (rs.next()) { String name = rs.getString("NAME"); String mail = rs.getString("MAIL"); out.println("<tr><td><a href=\"#\"onclick=\"alert('氏名: ')\">"); out.println(name); out.println("</a></td><td>"); out.println(mail); out.println("</a></td>"); count++; } // 件数の表示 out.println("<caption align = \"right\">"); out.println("<div align=\"left\">&nbsp;"); out.println(count); out.println("件</div></caption>"); out.println("</table>"); rs.close(); stmt.close(); } catch (ClassNotFoundException e) { out.println("ClassNotFoundException:" + e.getMessage()); } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } catch (Exception e) { out.println("Exception:" + e.getMessage()); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } } out.println("</form></CENTER>"); out.println("</body>"); out.println("</html>"); out.close(); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

java

1out.println("<tr><td><a href=\"#\" onclick=\"alert('氏名: ' + name)\">");

で良いかと思います。

投稿2016/04/22 06:41

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/22 06:47

nameが変数として認識されていないのか、 「氏名:」しか表示されません。 どのようにすればいいでしょうか?
A-pZ

2016/04/22 12:37

その前の行にて宣言されている String name = rs.getString("NAME"); で nameの値が取得できていれば大丈夫です。
tkturbo

2016/04/23 09:10

「"<tr><td><a href=\"#\" onclick=\"alert('氏名: ' + name」←「+」の前でリテラル閉じてないですよ > A-pZさん
guest

0

java

1out.println("<tr><td><a href=\"#\"onclick=\"alert('氏名: ')\">");

ここで「out.println()」している内容にjavascriptが含まれてますね。

window.alert - Web API インターフェイス | MDN

window.alert(message);
message は、アラートダイアログに表示したいテキストの文字列です。

質問者さんのソースでは「message」の位置に「氏名:」しか書いてないですね。

「氏名 : 山田 太郎
メール : taro@aaa」のように、

したいのであればそのような文字列を「alert(message)」のしかるべきところに入れればいいのでは?

投稿2016/04/22 05:44

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/22 05:56

名前やアドレスは文字列ではなく、 変数なので、 alert('氏名: ') の、":"より後の部分の 書き方について知りたいのですが、、、
tkturbo

2016/04/22 06:43 編集

「"<tr><td><a href=\"#\"onclick=\"alert('氏名: ')\">"」←これが文字列だという認識はありますか? 「"<tr><td><a href=\"#\"onclick=\"alert('氏名: " + "')\">"」←これも文字列だという認識はありますか? 「"1" + "2"」の結果がどうなるかわかっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問