AJAX根據城市名,自動完成相應的城市資訊_AJAX相關

來源:互聯網
上載者:User
以前在做項目的時候碰到這樣的需求。使用者希望能夠直接輸入城市的名字,就能夠得到這個城市的相應的資訊。以前是在頁面開啟的時候產生幾個JavaScript數組,然後來對比的。這樣做的話,如果資料比較多的時候,使用者會明顯的感到響應延遲。

    現在該成用ajax的方法來做,速度要快一些,客戶體驗會好一些。誰要咱們處在“體驗經濟”時代呢!

    下面是做的一個小例子,由兩個頁面組成。

    city.html頁代碼如下: 

<script> 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]; } } } </script> <center> <h3>得到城市相應的資訊</h3> <table align="center"> <tr> <td>輸入城市的拼音:</td> <td><input type="text" id="citycode" name="citycode" onBlur="sndReq(this.value);"/></td> </tr> <tr> <td>層級:</td> <td><input type="text" id="tier" name="tier"/></td> </tr> <tr> <td>負責人:</td> <td><input type="text" id="rmm" name="rmm"/></td> </tr> </table> </center>
[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中了
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.