AJAX实例:根据邮编自动完成地址信息

HTML

[复制到剪切板]
CODE:
<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 ZipcodeThen 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

[复制到剪切板]
CODE:
<?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];
}
如履薄冰