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

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

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

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Q&A

解決済

1回答

1342閲覧

PHPで取得したRSSをjsを介してhtmlに反映し、その部分だけ15秒ごとに更新する。

omiyage100

総合スコア2

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

1グッド

1クリップ

投稿2021/10/25 07:14

編集2021/10/25 07:15

前提・実現したいこと

現在、webページ上の一部分に外部ブログの記事タイトルと更新日を表示させています。
今回その部分だけを15秒ごとに更新することで、新着記事があればすぐに表示されるようにしたいです。
しかし、中々その方法が編み出せずにいます。

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

一部分を15秒ごとに更新し、新着記事があれば表示されるようにする

該当のソースコード

php

1<?php 2date_default_timezone_set('Asia/Tokyo'); 3$baseUrl = 'url';//外部ブログのurl 4$feedUrl = '/?feed=rss2'; 5$max = 10; 6if ($rss = simplexml_load_file($baseUrl . $feedUrl)) { 7 $cnt = 0; 8 $output = ''; 9 10 if (!isset($rss->channel) || !isset($rss->channel->item)) { 11 echo $output; 12 return; 13 } 14 if (is_array($rss->channel->item) || count($rss->channel->item) === 0) { 15 echo $output; 16 return; 17 } 18 foreach($rss->channel->item as $item) { 19 if ($cnt >= $max) { 20 break; 21 } 22 23 $date = date('Y.m.d', strtotime($item->pubDate)); 24 $output .= '<li class="c_list_type02">'; 25 $output .= $date; 26 $output .= ' '; 27 $output .= htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8'); 28 $output .= '</a></li>'; 29 $cnt++; 30 } 31 32 echo $output; 33}

js

1window.addEventListener('DOMContentLoaded', function() { 2 var req = new XMLHttpRequest(); 3 req.onreadystatechange = function() { 4 if( req.readyState == 4 && req.status == 200 ) { 5 document.getElementById( 'l_rss' ).innerHTML = req.responseText; 6 } 7 } 8 req.open( "GET", "common/php/output_rss.php" );//前述のphpです 9 req.send(); 10})

html

1<div id="l_rss"></div>

試したこと

Ajaxを使用すればいいのかなと思い調べたコードを組み込もうと試みましたが、良い書き方が分かりませんでした。

seastar3👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました

php

1var req = new XMLHttpRequest(); 2 rss_loading(); 3 setInterval(() => { 4 rss_loading(); 5 }, 15000); 6 7 function rss_loading() { 8 req.onreadystatechange = function () { 9 if (req.readyState == 4 && req.status == 200 && document.getElementById('l_rss')) { 10 document.getElementById('l_rss').innerHTML = req.responseText; 11 } 12 } 13 req.open("GET", rssRead_common); 14 req.send(); 15 } 16})

投稿2021/10/26 07:37

omiyage100

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問