如何根據(jù)郵編自動完成地址信息_AJAX教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:使用Ajax技術(shù)開發(fā)Web應(yīng)用程序
      在過去,由于為了獲得新數(shù)據(jù)而不得不重新加載web頁面(或者加載其他頁面)導(dǎo)致web應(yīng)用程序發(fā)展被限制。雖然有其他方法可用(不加載其他頁面),但是這些技術(shù)都沒有被很好地支持而且有bug成災(zāi)的趨向。在過去的幾個月里,一個過去并不被廣泛支持的技術(shù)已經(jīng)被越

      采用一個開源的AJAX庫:Ajax Toybox

        描述:

        在注冊或購物車結(jié)帳的時候,需要用戶填入個人資料,這個環(huán)節(jié)可以簡練一下,我們只需客人填入郵政編碼,然后就根據(jù)這個郵政編碼,自動從數(shù)據(jù)庫中取出相應(yīng)的省,市等地址信息。這樣既可以減少客戶的輸入,增加客戶體驗(yàn),又可以減少由于資料輸入而產(chǎn)生的錯誤。

        實(shí)現(xiàn):

      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(zip) {
      http.open('get', 'zipcode.php?zip='+zip);
      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("city").value = update[0];
      document.getElementById("state").value = update[1];
      }
      }
      }
      </script>
      <h3>Enter A United States Zipcode, Then Tab</h3>
      <table align="center">
      <tr>
      <td>Enter Zipcode:</td>
      <td><input type="text" id="zipcode" name="zipcode" onBlur="sndReq(this.value);"/></td>
      </tr>
      <tr>
      <td>City:</td>
      <td><input type="text" id="city" name="city"/></td>
      </tr>
      <tr>
      <td>State:</td>
      <td><input type="text" id="state" name="state"/></td>
      </tr>
      </table>

        以上是客戶輸入頁面,下面是服務(wù)端的處理頁面'zipcode.php

      <?php
      dbuser = 'root';
      dbpass = '111111';

      cn = mysql_connect("localhost", dbuser, dbpass);
      db = mysql_select_db("ajax");

      sql = "select city, state from zipcodes where zipcode = " . _REQUEST['zip'];
      rs = mysql_query(sql);
      row = mysql_fetch_array(rs);

      echo row['city'] . "|" . row['state'];

      mysql_close(cn);
      ?>

        當(dāng)客戶輸入一個POSTCODE后,zipcode.php就接收到它,然后進(jìn)行從數(shù)據(jù)表中取出對應(yīng)的資料,再按一定的格式返回給客戶端(此處是以 | 分隔)。最后客戶端接收返回的資料,顯示在頁面上。

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

       

      分享:揭開AJAX神秘面紗
      本文通過一個簡單的例子來說明如何在IE6中使用AJAX技術(shù)。在這例子中,客戶端每隔十秒,從服務(wù)器端取回一個隨機(jī)的字符串,在不重新刷新頁情況下,自動更新部分頁面內(nèi)容。例子僅用到了兩個jsp文件,client.jsp及server.jsp。 AJAX,即Asynchronous JavaScript

      來源:模板無憂//所屬分類:AJAX教程/更新時間:2010-04-13
      相關(guān)AJAX教程