zoukankan      html  css  js  c++  java
  • 天气预报ajax+php(可惜用的是已经失效的api)

    html部分

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>天气预报</title>
        <style>
            *{margin: 0;padding: 0;}
            .box{
                margin: 10px auto;
                padding: 20px;
                width: 200px;
                border: 1px solid #00f;
                text-align: center;
                background-color: #ccc;
            }
            .box p{
                line-height: 30px;
            }
            .sj{
                /* color: #0000fa; */
                font-weight: bold;
                font-size: 1.6em;
                margin-bottom: 10px;
            }
            .tq{
                font-weight: bold;
                /* font-size: 1.6em; */
            }
        </style>
    </head>
    <body>
        <div class="box">
            <p class="sj"></p>
            <p class="dz"></p>
            <p class="tq"></p>
            <p class="wd"></p>
            <p class="fx"></p>
            <p class="fl"></p>
            <p class="sd"></p>
            <p class="ap"></p>
        </div>
        <script>
        var date = new Date();
        var    year = date.getFullYear();
        var    month = date.getMonth() + 1;
        var    date = date.getDate();
        var $=function(sel){
                return document.querySelector(sel);
            }
        $('.sj').innerHTML=year+""+month+""+date+"";
            var xhr=new XMLHttpRequest();
            var url='tianqi.php?t='+Math.random();
            xhr.open("get",url,true);
        xhr.onreadystatechange=function(){
            if(4==this.readyState && 200==this.status){
                var txt=xhr.responseText;
                    var o=JSON.parse(txt);
                     console.log(o);                
                    $('.dz').innerHTML='地址:'+o.weatherinfo.city;
                    $('.tq').innerHTML='天气:'+o.weatherinfo.njd;
                    $('.wd').innerHTML='温度:'+o.weatherinfo.temp;
                    $('.fx').innerHTML='风向:'+o.weatherinfo.WD;
                    $('.fl').innerHTML='风力:'+o.weatherinfo.WS;
                    $('.sd').innerHTML='SD:'+o.weatherinfo.SD;
                    $('.ap').innerHTML='AP:'+o.weatherinfo.AP;
            }
        }
            xhr.send();
    
    
        </script>
    </body>
    </html>

    php部分

    <?php 
    header("Access-Control-Allow-Origin:*");//h5跨域解决方案
    $url='http://www.weather.com.cn/data/sk/101060101.html';
    $skinfo=file_get_contents($url);
    print_r($skinfo);

    原理是:

      通过php获得api的地址获得数据,如果谁有可用的数据,请求分享

      然后通过file_get_contents($url)获取url内容

        php 两种方法获取url内容 file_get_contents和curl

      然后通过ajax固定写法获取数据

    var xhr=new XMLHttpRequest();
            var url='tianqi.php?t='+Math.random();
            xhr.open("get",url,true);
        xhr.onreadystatechange=function(){
            if(4==this.readyState && 200==this.status){
                var txt=xhr.responseText;
                    var o=JSON.parse(txt);
                     console.log(o);                
                    $('.dz').innerHTML='地址:'+o.weatherinfo.city;
                   。。。
                    $('.ap').innerHTML='AP:'+o.weatherinfo.AP;
            }
        }
            xhr.send();

    txt是获得的数据,而o则是转换成json,然后通过’o.对象.对象名‘来输出值。

  • 相关阅读:
    RSDS pdb格式
    关于windbg报错"No symbols for ntdll. Cannot continue."问题
    WinDbg常用命令系列---.cmdtree
    正确创建本地C++发布构建PDBS
    PDB文件会影响性能吗?
    每个开发人员必须知道PDB文件知识
    Windbg妙用
    在x64计算机上捕获32位进程的内存转储
    为什么我的堆栈上会有奇怪的函数名?(关于符号的讨论)
    redis入门基础
  • 原文地址:https://www.cnblogs.com/yinwangyizhi/p/9179350.html
Copyright © 2011-2022 走看看