AjaxJavaScript天气预报php天气预报,用php来写一个天气预报的模块。
天气数据是通过采集中国气象网站的。本来中国天气网站也给出了数据的API接口。以下是API的地址。返回的数据格式为json格式。
1. http://www.weather.com.cn/data/sk/101010100.html
2. http://www.weather.com.cn/data/cityinfo/101010100.html
3. http://m.weather.com.cn/data/101010100.html
URL中的数字”101010100“是城市代码。所以可以先列出每个城市的城市代码,然后php程序接收到了城市代码,再去组装URL,在通过URL来显示该城市的实时天气。
index.php
<?php  
    header("Content-Type:text/html;charset=utf-8");   
?>  
<html>  
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />  
<head>  
<title>weather forecast天气预报--www.jbxue.com</title>  
<script type="text/javascript" src="ajax.js"></script>  
<script type="text/javascript">  
    function $(id){  
        return document.getElementById(id);  
    }  
    function getCityId(){  
        var http_request=createAjax();  
        var url="weatherforecast.php"  
        var data="cityid="+$("cityId").value;  
        http_request.onreadystatechange=getWetherInfo;  
        http_request.open("post",url,true);  
        http_request.setRequestHeader("Content-type","application/x-www-form-urlencoded");     
        http_request.send(data);  
        function getWetherInfo(){  
            if(http_request.readyState==4 && http_request.status==200){  
                var info=http_request.responseText;  
                $("weatherinfo").innerHTML=info;  
            }  
        }  
    }  
</script>  
</head>  
<body>  
<select name="cityId" onchange="getCityId();" id="cityId">  
    <option>--请选择城市--</option>  
    <option value="101010100">北京</option>  
    <option value="101020100">上海</option>  
    <option value="101030100">天津</option>  
    <option value="101040100">重庆</option>  
    <option value="101280101">广州</option>  
</select>  
<span id="weatherinfo"></span>  
</body>  </html>  
weatherforecast.php
<?php  
header("Content-Type:text/html;charset=utf-8");  
header("Cache-Control:no-cache");  
    if (isset($_POST['cityid'])){  
        $cityid=$_POST['cityid'];  
        $url=$url="http://www.weather.com.cn/data/sk/".$cityid.".html";  
    }else {  
        $url="http://www.weather.com.cn/data/sk/101010100.html";  
    }  
    $weatherInfo_json=file_get_contents($url);  
    $weatherInfo=json_decode($weatherInfo_json,true);  
    $cityName=$weatherInfo['weatherinfo']['city'];  
    $cityTemp=$weatherInfo['weatherinfo']['temp'];  
    $cityWd=$weatherInfo['weatherinfo']['WD'];  
    $cityWs=$weatherInfo['weatherinfo']['WS'];  
    $cityTime=$weatherInfo['weatherinfo']['time'];  
    $citySD=$weatherInfo['weatherinfo']['SD'];  
    echo $weatherinfo="城市名字:$cityName,气温:$cityTemp,风向:$cityWd";  
?>  

PHP+AJAX无刷新返回天气预报的更多相关文章

  1. ajax完成list无刷新返回

    ajax完成list无刷新返回 ajax无刷新技术总结,以下是一段我写的ajax应用的js脚本.其中提交的data刚开始我采用的是$('#formId').serialize();但是出现乱码问题,为 ...

  2. ajax无刷新获取天气信息

    浏览器由于安全方面的问题,禁止ajax跨域请求其他网站的数据,但是可以再本地的服务器上获取其他服务器的信息,在通过ajax请求本地服务来实现: <?php header("conten ...

  3. 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

    现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...

  4. ajax 无刷新分页

    //ajax 无刷新分页1.前台要做的 滑动时 当前page+1,通过page ajax请求后台接口获取数据将数据进行拼装;2.后台要做的 做分页接口返回json数据前台判断触发请求条件: var p ...

  5. thinkphp ajax 无刷新分页效果的实现

    思路:先做出传统分页效果,然后重新复制一份Page.class.php类,对它进行修改,把js中的函数传到page类中,把上一页.下一页.首页.尾页.链接页中的url地址改成js控制的函数,模板页面中 ...

  6. DWZ框架Ajax无刷新表单提交处理流程

    DWZ框架Ajax无刷新表单提交处理流程是: 1.       ajax表单提交给服务器 2.       服务器返回一个固定格式json结构 3.       js会调函数根据这个json数据做相应 ...

  7. Thinkphp框架 -- ajax无刷新上传图片

    用Thinkphp框架做无刷新上传图片 视图层 View <!doctype html> <html lang="en"> <head> < ...

  8. ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传

    先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2 ...

  9. TP3.2:实现Ajax无刷新上传图片

    1.基于TP3.2+ajaxfileupload进行无刷新上传图片,本次只上传一张,多张以后搞出来再发 2.效果:   3.html代码: <html> <head> < ...

随机推荐

  1. C#基础--属性 字段

    访问修饰符: private: 私有成员,在类的内部才可以访问 protected: 受保护的成员,该类内部和继承类的内部可以访问 public: 公共成员, 完全公开, 没有访问限制 interna ...

  2. 顺丰接口 api对接说明

    1       功能说明 物流轨迹查询-使用的物流单号和快递单号即可实现查询物流信息. 1.1   接口规则 (1).查询接口支持按照运单号查询(单个查询). (2).指定的物流运单号选择相应的快递公 ...

  3. 1.7.7 Spell Checking -拼写检查

    1. SpellCheck SpellCheck组件设计的目的是基于其他,相似,terms来提供内联查询建议.这些建议的依据可以是solr字段中的terms,外部可以创建文本文件, 或者其实lucen ...

  4. XACML-<Target> 元素的结构与相关的评估

    本文由@呆代待殆原创,转载请注明出处. 一.<Target>元素的结构 <Target>元素标识的父元素被用于评估决定请求.<Target>元素即可以做为<P ...

  5. 自定义uiview 当没有数据的时候 显示自定义的uiview界面

    // // ZSDTJNoDataView.h // ZSDTJNoDataView // // Created by Mac on 14-12-28. // Copyright (c) 2014年 ...

  6. 使用block来解决实现switch解决字符串

    NSString *lookup=@"Hearts"; typedef void  (^CaseBlock)(); NSDictionary *diction=@{@"D ...

  7. 基于 SOA 的组件化业务基础平台

    业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台之间的交互与管理问题”.操作系统平台解决了“应用软件系统与硬件之间的交互与管理问题” ...

  8. Gstreamer基本概念介绍(开发前必读)

    1. 元件(Elements) 元件(element)是GStreamer中最重要的概念.你可以通过创建一系列的元件(Elements),并把它们连接起来,从而让数据流在这个被连接的各个元件(Elem ...

  9. Python之时间统计

    1. import time start_time = time.time() print('time %ds'%(time.time() - start_time))

  10. 地图 ajax-数据库

    通过数据库和ajax方法写出地图 客户端部分:html.js.css代码部分: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ...