Solucio temps

De wikiserver
Dreceres ràpides: navegació, cerca
<!DOCTYPE html>
<meta charset="UTF-8">
 
<form method="get" action="tiempo.php">
    <label>
        Ciudad
    </label>
    <input type = "text" name="c">
    <input type = "submit" value="Mostrar el Tiempo">
</form>


//arxiu temps

<?php 
 
if($_GET["c"]==null) die();
 
$html = file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$_GET["c"]);
 
$json = json_decode($html);
 
$ciudad = $json->name;
$lat = $json->coord->lat;
$lon = $json->coord->lon;
$temp = $json->main->temp;
$tempmax = $json->main->temp_max;
$tempmin = $json->main->temp_min;
$presion = $json->main->pressure;
$humedad = $json->main->humidity;
$vel_viento = $json->main->temp;
$estado_cielo = $json->weather[0]->main;
$descripcion = $json->weather[0]->description;
 
echo "<h3>Ciudad: ".$ciudad." [lat = ".$lat. ", lon = ".$lon. " ]</h3>";
echo "<b>Estado del cielo: </b>".$estado_cielo."<br>";
echo "<b>Descripción: </b>".$descripcion."<br>";
echo "<br>";
echo "<b>Temperatura: </b>".$temp." K [Máx: ".$tempmax."K, Mín: ".$tempmin."K]<br>";
echo "<b>Presión: </b>".$presion."<br>";
echo "<b>Humedad: </b>".$humedad."<br>";
echo "<br><br><br><br><br>";  
?>

Exemple de json que retorna

{"coord":{"lon":2.16,"lat":41.39},"sys":{"type":3,"id":8549,"message":0.071,"country":"ES","sunrise":1427693836,"sunset":1427739255},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02d"}],"base":"stations","main":{"temp":295.83,"pressure":1018,"temp_min":292.59,"temp_max":297.59,"humidity":84},"wind":{"speed":6.68,"gust":10.28,"deg":166},"rain":{"3h":0},"clouds":{"all":12},"dt":1427719945,"id":3128760,"name":"Barcelona","cod":200}


<!DOCTYPE html>
<meta charset="UTF-8">
 <head>
<script type="text/javascript">

window.onload=function(){
  var datos;
  function pedir_datos (url, params) {
    datos = new XMLHttpRequest();
    datos.open("POST", url, true);
    datos.onreadystatechange = mostrar_datos;
    datos.setRequestHeader("Content-type","application/x-www-form-urlencoded");  ////Llamamos al método setRequestHeader indicando que los datos a enviarse están codificados como un formulario.
    //datos.setRequestHeader("Content­length", params.length);
    //datos.setRequestHeader("Connection", "close");
    datos.send(params);         
  }
  function mostrar_datos () {
    if (datos.readyState == 4 && datos.status == 200) 
      var d=JSON.parse(datos.responseText);
      document.getElementById('resultado').innerHTML = d.list[0].name;
  }
  function iniciar() {
    var url    = 'json.php';
    var params = 'ciudad='+  document.getElementById("tecla").value;
    pedir_datos(url, params);
  }
 document.getElementById("b").onclick=iniciar;
}
 
</script>

</head>
<body> 
   
      <label>Curso: </label>
      
      <label>Tutor: </label>
      <input id="tecla" type="text" name="ciudad" />
      <input id="b" type="submit" name="submit" value="OK" />
   
   <div id="resultado"> </div>
 </body>
</html>


<?php 
 
if($_POST["ciudad"]==null) die();
 
$html = file_get_contents("http://api.openweathermap.org/data/2.5/find?&q=".$_POST["ciudad"].",es&lang=es&units=metric&APPID=278857e8dee51f914026df21d0d40c19");

echo ($html);

?>