2012-08-08 216 views
0

div#weather里面有一些PHP调用Google的天气XML。它很好,除了它变得陈旧。我想每隔600000毫秒重新加载一次div以获得新的XML。重新加载div重新加载XML

我正在走一个JavaScript计时器的路径,但似乎需要一个外部URL。

如果我需要在外部文件中有PHP,这没什么大不了的,只是不理想。

<div id="weather"> 
<?php 
    $URL = "http://www.google.com/ig/api?weather=60618"; 
    $dataInISO = file_get_contents($URL); 
    $dataInUTF = mb_convert_encoding($dataInISO, "UTF-8", "ISO-8859-2"); 
    $xml = simplexml_load_string($dataInUTF); 
    $current = $xml->xpath("/xml_api_reply/weather/current_conditions"); 
?> 
    <div class="weather-<?php $weather = $current[0]->condition['data']; $weatherclass = str_replace(' ','-',$weather); $weatherclass = strtolower($weatherclass); echo $weatherclass; ?>">&nbsp;</div> 
    <div id="temp"><?= $current[0]->temp_f['data'] ?>&deg;</div> 
    <div id="condition"><?= $current[0]->condition['data'] ?></div> 
</div> 
+1

为什么不制作一个可以通过AJAX查询的'weather.php'文件? – Blender 2012-08-08 02:01:23

+0

除了Blender说的之外,我唯一能看到的就是在页面上放置一个“元刷新”。去AJAX,这显然是解决方案。 – Johnny5 2012-08-08 02:03:00

+0

@Blender外部weather.php是好的,我只是希望在一个文件中保持简单。感谢您的答复。 – natejones 2012-08-08 02:10:13

回答

0

如果你想让你的单个文件,你可以使用Ajax调用自身,然后就抢里面<div id="weather">的HTML替换当前的股利。

$.get('your current page.php', function(data){ 
    var a = $(data); 
    var weather = $(a).find('#weather').html(); 
    $('#weather').html(weather); 
});