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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1370閲覧

Jqueryでjsonデータをhtmlに表示したい

yamada_yuuki

総合スコア100

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/08/16 03:35

編集2020/08/16 07:06

NewsAPIを使いJsonデータを取得するとところまでは以前の質問で出来たのですがJqueryでjsonデータをhtmlに表示するところでもハマってしまいました。errorは出てませんが表示がされません。

何回も質問すみません。毎回同じですが、なにかわかる方は回答お願いします。

log

1Started GET "/news/data" for ::1 at 2020-08-16 14:50:53 +0900 2Processing by NewsController#data as */* 3 Rendering news/data.js.erb 4 Rendered news/data.js.erb (Duration: 0.2ms | Allocations: 4) 5Completed 200 OK in 860ms (Views: 10.4ms | ActiveRecord: 0.0ms | Allocations: 1951)

controller

1 2require 'uri' 3require 'net/http' 4require 'json' 5 6def data 7 @END_POINT = 'https://newsapi.org/v2'.freeze 8 @REQUEST_URL = "#{@END_POINT}/top-headlines?sources=bbc-news&apiKey=自分のAPI".freeze 9 json = 10 URI.parse(@REQUEST_URL) 11 .then { |uri| Net::HTTP.get(uri) } 12 .then { |response| JSON.parse!(response) } 13 @data = json['articles'].html_safe 14end

datajs

1var data = <%= @data %>; 2var result = '<ul class="info">' 3data.forEach(function(e){ 4 result += '<li>' + e.title + '</li><hr>'; 5}); 6result += '</ul>' 7$('#result').html(result); 8

index

1<div id="result">no information...</div> 2<script> 3var f = function(){ 4 $.ajax({ 5 type: 'GET', 6 url: '/news/data' 7 }); 8}; 9setTimeout(f, 600000); 10f(); 11</script>

追記:デロッパーツールでこのような表示がありました

VM340:2 Uncaught SyntaxError: Unexpected token 'var' at DOMEval (DOMEval.js:38) at Function.globalEval (core.js:197) ... var data = var result += '<ul class="info">' ←ここを指してた data.forEach(function(e){

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

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

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

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

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

kei344

2020/08/16 04:17

「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
yamada_yuuki

2020/08/16 04:30

コメントありがとうございます。後でログなどを載せます。
guest

回答1

0

ベストアンサー

setTimeout(f, 600000);

10分後にajaxを実行していますか?単に10分たってないだけでは?
ただ$.ajaxが呼び出しだけして、結果をなにもしていないので
エラーも表示もされないとは思いますが・・・

投稿2020/08/16 05:37

yambejp

総合スコア114843

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

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

yamada_yuuki

2020/08/16 06:02

回答ありがとうございます。たしかにそこは間違ってはいましたがsetTimeoutをいじってもなくしても結果は変わらずエラーは出ませんでした。
yambejp

2020/08/16 06:29

その後に$.ajaxが呼び出しっぱなしで何もしていないこと指摘してありますよね? da $.ajax({ ・・・ }).done(function(data){ console.log(data); //成功時の出力 }).fail(function(xhr,err)){ console.log(err); //失敗時の出力 }); のように書いてください
yamada_yuuki

2020/08/17 05:55

返信遅れました。 VM1308:1 Uncaught SyntaxError: Unexpected token '=>' at DOMEval (DOMEval.js:38) at Function.globalEval (core.js:197) ... f @ (index):74 (anonymous) @ (index):83 (index):78 var data = [{"source"=>{"id"=>"bbc-news", "name"=>"BBC News"}, "author"=>"BBC News", "title"=>"Troops end deadly siege at Somali hotel", "description"=>"At least 10 people are dead after al-Shabab militants stormed the Elite Hotel in the capital.", "url"=>"http://www.bbc.co.uk/news/world-africa-53798834", ... data.forEach(function(e){ result += '' + e.title + ''; }); $('#result').html(result); となっていました。Uncaught SyntaxErrorはdata.js.erbのいち行目の var data = (データ)  ←ここを指してたました。 data.forEach(function(e){
yambejp

2020/08/17 05:59

見た感じ戻り値はjsonになっていませんがそれが原因では? またjsonがもどる前提なら$.ajaxのdataType:"JSON"の指定が必要です
yamada_yuuki

2020/08/17 08:39 編集

コントローラーの @data = json['articles'] の部分に @data = json['articles'].to_json とすることで出来ました アドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問