AJAX根据城市名,自动完成相应的城市信息

以前在做项目的时候碰到这样的需求。用户希望能够直接输入城市的名字,就能够得到这个城市的相应的信息。以前是在页面打开的时候生成几个JavaScript数组,然后来对比的。这样做的话,如果数据比较多的时候,用户会明显的感到响应延迟。

现在该成用ajax的方法来做,速度要快一些,客户体验会好一些。谁要咱们处在“体验经济”时代呢!

下面是做的一个小例子,由两个页面组成。

city.html页代码如下:

function createRequestObject()
{
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}

var http = createRequestObject();

function sndReq(city)
{
http.open('get', 'zipcode.jsp?city='+city);
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse()
{
if(http.readyState == 4)
{
var response = http.responseText;
var update = new Array();

if(response.indexOf('|' != -1))
{
update = response.split('|');
document.getElementById("tier").value = update[0];
document.getElementById("rmm").value = update[1];
}
}
}

得到城市相应的信息

输入城市的拼音:
级别:
负责人:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

zipcode.jsp代码如下: 


代码如下:

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.*" %> 
<%@ page import="java.sql.Connection"%> 
<%@ page import="java.sql.PreparedStatement"%> 
<%@ page import="java.sql.ResultSet"%>

<%@ page import="com.util.MyConnection"%> 
<% 
String city = request.getParameter("city");

if(city==null) 

 city= ""; 

if(!city.equals("")) 

 String sql="select citrmm,cittier from tb_basecity where citname like '"+city+"'"; 
 Connection conn = MyConnection.getConnection(); 
 PreparedStatement state= conn.prepareStatement(sql); 
 ResultSet rs = state.executeQuery();

if(rs.next()) 
 { 
  out.println(rs.getString("citrmm")+"|"+rs.getString("cittier")); 
 } 
 else 
 { 
  out.println("未知"+"|"+"未知"); 
 }

rs.close(); 
 state.close(); 
 conn.close();


else 

 out.println("未知"+"|"+"未知"); 
}

%>

PS:
    Http.send()后,经检测Http.readystate==4,说明载入完毕,这时网页内容已经载入 到了Http.responseBody中了

(0)

相关推荐

  • Ajax 通过城市名获取数据(全国天气预报API)

    预览图(比较简单粗糙) 聚合数据全国天气预报接口:https://www.juhe.cn/docs/api/id/39 接口地址:http://v.juhe.cn/weather/index 支持格式:json/xml 请求方式:get 请求示例:http://v.juhe.cn/weather/index?format=2&cityname=%E8%8B%8F%E5%B7%9E&key=您申请的KEY 调用样例及调试工具:API测试工具 请求参数说明: 名称 类型 必填 说明 cityn

  • django ajax提交评论并自动刷新功能的实现代码

    在试了很多次了,终于搞定了,上代码吧.(我用的是jQuery的ajax,不是原生的) js代码: <script> $(document).ready(function () { getcomment(); $('.comment-box button').click(function () { var comment_text = $('.comment-box textarea').val(); $.ajax({ type: 'POST', url: '/bbs/article/{{ ar

  • AJAX应用之草稿自动保存

    相信用过Gmail的人都知道Gmail有一个草稿自动保存的功能,每过一段时间,Gmail都会自动保存邮件草稿,这样在一些突发情况下就能快速地恢复工作,免得写了半天的邮件眨眼之间就没有了.在学了AJAX之后,我也给自己的blog加上了这个功能.当然,这个应用并不只限于blog上,应该说还是比较通用的. PS.为了开发的方便,我用了一个自己写的AJAX类,具体内容和下载在这里. 演示地址,我的blog 仍旧以代码加注释来方式来说明怎么编写. 首先是表单填写页面,用一个ID为AutoSaveMsg的D

  • C#实现保存文件时重名自动生成新文件的方法

    本文实例讲述了C#实现保存文件时重名自动生成新文件的方法.分享给大家供大家参考.具体如下: 将一个文档保存为 a.txt 时,发现此文件已经存在,则自动保存为 a(1).txt /// <summary> /// Generates a new path for duplicate filenames. /// </summary> /// <param name="path">The path.</param> /// <retu

  • JS通过ajax + 多列布局 + 自动加载实现瀑布流效果

    Ajax •说明:本文效果是无限加载的,意思就是你一直滚动就会一直加载图片出现,通过鼠标滚动距离来判断的,所以不是说的那种加载一次就停了的那种,那种demo下次我会再做一次 css部分用的是html5+css3的新属性,图片会自动添加到每行的最顶端上去,而不是用js去判断.去除了一些js计算的麻烦. css部分: * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #352323 url(images/a

  • 微信小程序获取当前位置和城市名

    1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数): 3,微信没有将经纬度直接转换为地理位置,借用腾讯位置服务中关于微信小程序的地理转换JS SDK 的API(返回信息中包括国家,省,市,区,经纬度等地理位置) 步骤描述清楚以后,下面就开始按步骤操作了:(本文仅仅讲述如何获取用户地理位置的授权) 图示为获取用户地理位置授权弹窗 在用户首次进入某页面(需要地理位置授权)时候,在页

  • 利用JAVA反射,读取数据库表名,自动生成对应实体类的操作

    本代码是利用java反射,读取数据库表自动根据表名生成实体类,数据库采用老牌SQLSERVER 2000,驱动为JTDS,其他数据库可根据情况自定修改. 代码中包含了大部分数据库类型与JAVA类型的转换,少数未包含进去的会在生成代码时打印出来,方面后期查找修改. import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sq

  • mybatis 字段名自动转小写的实现

    1.什么是Mybatis? MyBatis是一个优秀的持久层框架,是一个半ORM(对象关系映射)框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如加载驱动.创建连接.创建statement等繁杂的过程. Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回. 2.Mybatis

  • 如何让java只根据数据库表名自动生成实体类

    根据数据库表名生成实体类 公司用的jpa,没有用mybatis.所以也没有用mybatis自动生成.但有些数据库表字段太多,就想着一劳永逸了,连数据库注释都搞上去 第一种 这里使用的是jdbcTemplate+Junit测试生成,方式可变. SpringBoot版本是2.4.4,只需要加上@SpringBootTest就可以了.不用@RunWith pom: <dependency> <groupId>org.springframework.boot</groupId>

  • Pycharm创建python文件自动添加日期作者等信息(步骤详解)

    第一步 找到 Preferences,点击进入.进入后找到 Editor – File and Code Templates – Python Script . 第二步 添加自己所需要的信息 第三步 添加完成后,点击 OK 键进行保存. 新建python文件就会看到已添加的默认信息. 常用配置 #-- coding: utf-8 -- #@Time : ${DATE} ${TIME} #@Author : XXXX #@Email : XXXX@qq.com #@File : ${NAME}.p

随机推荐