描述:在注冊或購物車結帳的時候,需要用戶填入個人資料,這個環節可以簡練一下,我們只需客人填入郵政編碼,然後就根據這個郵政編碼,自動從數據庫中取出相應的省,市等地址信息。
這樣既可以減少客戶的輸入,增加客戶體驗,又可以減少由於資料輸入而產生的錯誤。
實現:
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];
}