AJAX根據郵遞區號,自動完成城市和地址資訊

來源:互聯網
上載者:User
 

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

描述:
  在註冊或購物車結帳的時候,需要使用者填入設定檔,這個環節可以簡練一下,我們只需客人填入郵遞區號,然後就根據這個郵遞區號,自動從資料庫中取出相應的省,市等地址資訊。
  這樣既可以減少客戶的輸入,增加客戶體驗,又可以減少由於資料輸入而產生的錯誤。

實現:

 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>

以上是客戶輸入頁面,下面是服務端的處理頁面'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);
?>
當客戶輸入一個POSTCODE後,zipcode.php就接收到它,然後進行從資料表中取出對應的資料,再按
一定的格式返回給用戶端(此處是以 | 分隔)。最後用戶端接收返回的資料,顯示在頁面上。
if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById("city").value = update[0];
   document.getElementById("state").value = update[1];
        }

最終的:

作者Blog:http://blog.csdn.net/jxyuhua/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.