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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2634閲覧

SQLite3 + NodeJsによるWEBサービスで、DBに記載したURLの画像を表示させたい

wanco

総合スコア4

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/07/10 10:33

編集2018/07/11 02:12

前提・実現したいこと

Windows 7 (64bit)+ sqlite3 + NodeJs(express + ejs) で WEBブラウザにデータベースの抽出結果を表示させました。その中に画像URLがあり、それをクリックして表示させようとしています。何方かご教授願います。

発生している問題・エラーメッセージ

リンクをクリックしたら画像を表示させたいのですが表示されません。
ソースコードに一行だけ書いた<a href=.....の部分です。
表示させたい画像のURL文字列を入れた変数「logue.画像リンク」をコンソールに出力させた結果は正しいです。
またonclickイベントで実行する関数の引数に、同URL文字列を直に書くと正しく表示します。
しかし変数を引数にした場合、リンクをクリックしても反応しません。
俄仕込みのため、基本的な書式の誤りがあると思います。
変数が文字列として認識されているとかの誤りと推測しますが、正しい記述方法がわかりません。
掲載したコードはindex.ejsで、質問に関係ない部分は削除しました。

該当のソースコード

ejs

1<!DOCTYPE html> 2<html> 3 <head> 4 <title><%= title %></title> 5 <link rel='stylesheet' href='/stylesheets/style.css' /> 6 <script> 7 function openImage(imgPath){ 8 var index = imgPath.indexOf("images") + 7; 9 var subPath = "./images/" + imgPath.substring(index); 10 window.open(subPath); 11 } 12 </script> 13 </head> 14 <body> 15 <div class="wrapper"> 16 <form action="/" method="post" class="logging-form"> 17 開始年月日: <input type="text" name="DateFrom" class="input" required> 18 ~終了年月日: <input type="text" name="DateTo" class="input" required> 19 <button type="submit" class="submit">検索</button> 20 </form> 21 <ul class="main-list"> 22 <% loggingList.forEach(function(logue) { %> 23 <li class="main-list__item"> 24 <div class="record"> 25 日時 <%= logue.時刻 %> 26 <% if(logue.画像リンク === '') {%> 27 <% } else { %> 28 <% console.log(logue.画像リンク) %> 29 <% var b = logue.画像リンク %> 30 <a href="javascript:void('0')" onclick = "openImage(logue.画像リンク)">画像リンク</a> 31 <% } %> 32 </div> 33 </li> 34 <% }); %> 35 </ul> 36 </div> 37 </body> 38</html>

試したこと

ブラウザ開発ツールのコンソールにSCRIPT5009:’logue'は定義されていません。が出ていました

補足情報(FW/ツールのバージョンなど)

SQLite3 ver 3.24.0.0

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

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

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

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

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

m.ts10806

2018/07/10 22:21

リンククリック時にエラーナド発生していませんでしょうか。ブラウザ開発ツールのコンソールを確認してみてください
wanco

2018/07/11 00:18

皆様ありがとうございます。【Orlofsky様】markdownの件、読んでおきます。 【mts10806様】ブラウザ開発者ツールは知りませんでした。IEでF12で出てくる画面でしょうか。今初めて見ているところです。特にエラー表示はありませんが、デバッガーが付いているので何か分るかもしれません。
m.ts10806

2018/07/11 00:22

質問は編集できるので指摘や追記依頼があったときには適宜対応してください。デバッガー試してみた結果も追記いただけると解決のヒントになるかもしれません。
wanco

2018/07/11 00:23

ブラウザ開発ツールのコンソールに「SCRIPT5009:’logue'は定義されていません。」が出ていました。グローバルな定義とかがあるのでしょうか。調べてみます。
wanco

2018/07/11 00:23

ブラウザ開発ツールのコンソールに「SCRIPT5009:’logue'は定義されていません。」が出ていました。グローバルな定義とかがあるのでしょうか。調べてみます。
Orlofsky

2018/07/11 00:42

まともに字下げしていないコードを読んでくれる奇特な人は少ないです。
wanco

2018/07/11 00:44

【Orlofsky様】ご指摘ありがとうございます。修正してみました。
guest

回答1

0

自己解決

ejs

1<a href="javascript:void('0')" onclick = "openImage('<%= logue.画像リンク%>')">画像リンク</a> 2

と書くことで解決しました。

投稿2018/07/12 03:20

wanco

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問