查看完整版本: AJAX实例:根据邮编自动完成地址信息

lily 2007-12-12 20:15

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

             <p><STRONG>描述:</STRONG> <P></P>在注册或购物车结帐的时候,需要用户填入个人资料,这个环节可以简练一下,我们只需客人填入邮政编码,然后就根据这个邮政编码,自动从<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" target="_self"><u><strong>数据库</strong></u></a>中取出相应的省,市等地址信息。这样既可以减少客户的输入,增加客户体验,又可以减少由于资料输入而产生的错误。 <P></P><STRONG>实现:</STRONG> <P></P><P></P><CODE><FONT face=新宋体><a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'HTML');" target="_self"><u><strong>HTML</strong></u></a> <BR><script&gt;<BR>function createRequestObject() { <BR>var ro; <BR>var browser = navigator.appName; <BR>if(browser == "Microsoft <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'Internet');" target="_self"><u><strong>Internet</strong></u></a> Explorer"){ <BR>ro = new ActiveXObject("Microsoft.XMLHTTP"); <BR>}else{ <BR>ro = new XMLHttpRequest(); <BR>} <BR>return ro; <BR>} <BR>var http = createRequestObject(); <BR>function sndReq(zip) { <BR>http.open('get', 'zipcode.php?zip='+zip); <BR>http.onreadystatechange = handleResponse; <BR>http.send(null); <BR>} </FONT></CODE><CODE><FONT face=新宋体>function handleResponse() { <BR>if(http.readyState == 4){ <BR>var response = http.responseText; <BR>var update = new Array(); <BR>if(response.indexOf('|' != -1)) { <BR>update = response.split('|'); <BR>document.getElementById("city").value = update[0]; <BR>document.getElementById("state").value = update[1]; <BR>} <BR>} <BR>} <BR></script&gt;<BR><h3&gt;Enter A United States Zipcode, Then Tab</h3&gt;<BR><table align="center"&gt;<BR><tr&gt;<BR><td&gt;Enter Zipcode:</td&gt;<BR><td&gt;<input type="text" id="zipcode" name="zipcode" onBlur="sndReq(this.value);"/&gt;</td&gt;<BR></tr&gt;<BR><tr&gt;<BR><td&gt;City:</td&gt;<BR><td&gt;<input type="text" id="city" name="city"/&gt;</td&gt;<BR></tr&gt;<BR><tr&gt;<BR><td&gt;State:</td&gt;<BR><td&gt;<input type="text" id="state" name="state"/&gt;</td&gt;<BR></tr&gt;<BR></table&gt;</FONT></CODE> 以上是客户输入页面,下面是服务端的处理页面'zipcode.php <P></P><CODE><?php<br /><FONT face=新宋体>$dbuser = 'root';<BR>$dbpass = '111111';<BR>$cn = mysql_connect("localhost", $dbuser, $dbpass);<BR>$db = mysql_select_db("<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'ajax');" target="_self"><u><strong>ajax</strong></u></a>\");<BR>$sql = "select city, state from zipcodes where zipcode = " . $_REQUEST['zip'];<BR>$rs = mysql_query($sql);<BR>$row = mysql_fetch_array($rs);<BR>echo $row['city'] . "|" . $row['state'];<BR>mysql_close($cn);<BR>?&gt;</FONT></CODE> 当客户输入一个POSTCODE后,zipcode.php就接收到它,然后进行从数据表中取出对应的资料,再按一定的格式返回给客户端(此处是以 | 分隔)。最后客户端接收返回的资料,显示在页面上。 <P></P><CODE><FONT face=新宋体>if(response.indexOf('|' != -1)) {<BR>update = response.split('|');<BR>document.getElementById("city").value = update[0];<BR>document.getElementById("state").value = update[1];<BR>}</FONT></CODE></FONT></p>     <center><input type="image" onclick=copyToClipBoard() src="http://www.phpchina.com/images/phpcn_book_bu_tj.gif" border="0"></center>
页: [1]
查看完整版本: AJAX实例:根据邮编自动完成地址信息