0

私はデジタルディスプレイの天気を取得するためにyahoo天気フィードとsimplepieを使用しています。画面上で実行されるウェブサイトであるため、ブラウザを常に手動で更新することはできません。

jqueryやphpdocなど、天気の変化に応じて天気情報を定期的に更新するのに役立つものはありますか?もしそうなら、実装方法についていくつかの指示を教えていただけますか?あなたの助けは大歓迎です。

これが便利な場合に備えて私のコードの一部です

<div id="weather">
        <div id="title">
                <ul>
                    <!--<li> Outside Temp </li>-->
                    <li> Today </li>
                    <li> Tomorrow </li>

                </ul>
        </div> <!--title-->

        <div id="forecast">

        <div id="images">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><img src="<?php echo $forecast->get_image(); ?>" alt="Weather" /></li>

                <?php endforeach; ?>
            </ul>
         </div> <!--images-->

        <div id="degrees">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><?php echo $forecast->get_low(); ?>&deg; &nbsp; <?php echo $forecast->get_high(); ?>&deg; </li>

                <?php endforeach; ?>
            </ul>
            </div><!--degrees-->

    </div> <!--forecast-->
<!--</div> <!--second-->

いくつかのヘッダー部分情報:

<php

require_once('simplepie/simplepie.inc');
require_once('simplepie/simplepie_yahoo_weather.inc');

$feed = new SimplePie();

$feed->set_feed_url('http://weather.yahooapis.com/forecastrss?w=1234567&u=c'); 

$feed->set_item_class('SimplePie_Item_YWeather');

$feed->init();

$weather = $feed->get_item(0);

?>

どうもありがとうございます!

S :)

4

1 に答える 1

2

まだJavaScriptを使用していないので、定期的にページを更新するための本当に簡単な方法は、 metarefreshタグを使用することかもしれません。非推奨ですが、動的ページを取得するための簡単な方法である可能性があります。<head>ページのにタグを追加するだけです。

<meta http-equiv="refresh" content="5"> <!--Refresh the page every 5 seconds-->

ただし、代わりにajaxを使用してコンテンツをページにロードすることを検討することをお勧めします。これはこれに対する最善のアプローチではないかもしれませんが、ここにいくつかの迅速で汚いコードがあります。

メインページでは、jQueryloadを使用してPHPスクリプトのURLを定期的にヒットし、コンテンツをにロードしdivて表示することができます。

<html>
<head>
    <script type="text/javascript">
        $(document).ready(function(){
            setTimeout(loadWeather, 5000); //using setTimeout instead of a setInterval to avoid having multiple queries queue up when the first one fails to return within the timeout period
        });

        function loadWeather(){
            $('#weather').load('weather.php);
            setTimeout(loadWeather, 5000);
        }
    </script>
</head>
<body>
    <div id="weather" />
</body>
</html>

どこweather.phpがこのように見えるかもしれません:

<div id="weather">
        <div id="title">
                <ul>
                    <!--<li> Outside Temp </li>-->
                    <li> Today </li>
                    <li> Tomorrow </li>

                </ul>
        </div> <!--title-->

        <div id="forecast">

        <div id="images">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><img src="<?php echo $forecast->get_image(); ?>" alt="Weather" /></li>

                <?php endforeach; ?>
            </ul>
         </div> <!--images-->

        <div id="degrees">
            <ul>
                <?php foreach ($weather->get_forecasts() as $forecast): ?>

                <li><?php echo $forecast->get_low(); ?>&deg; &nbsp; <?php echo $forecast->get_high(); ?>&deg; </li>

                <?php endforeach; ?>
            </ul>
            </div><!--degrees-->

    </div> <!--forecast-->
<!--</div> <!--second-->
于 2011-08-12T05:03:42.413 に答える