為此,我們采用了AJax技術來實現僅取得所需的相關地址的方式來解決這個問題。服務器首先依據用戶的當前地址將同級的省和市的地址輸出到客戶端,當用戶變動國家或省級地址時,再動態從服務器獲取相關的省級或市級地址數據列表。
以下,是JS代碼示例
<script>
function ChangeStayAddr1(){
pstfrm.slStayAddr2.options.length = 0;
var opt1 = new Option ( "選擇", "0" );
pstfrm.slStayAddr2.options[0]=opt1;
pstfrm.slStayAddr3.options.length = 0;
opt1 = new Option ( "選擇", "0" );
pstfrm.slStayAddr3.options[0]=opt1;
var url = "GetAreaOptions.ASPx?action=geta2&Pid=" + pstfrm.slStayAddr1.value + "&ListN=pstfrm.slStayAddr2";
_sendfunc(url,CallForExe);
}
function ChangeStayAddr2(){
pstfrm.slStayAddr3.options.length = 0;
var opt1 = new Option ( "選擇", "0" );
pstfrm.slStayAddr3.options[0]=opt1;
var url = "GetAreaOptions.ASPx?action=geta3&Pid=" + pstfrm.slStayAddr2.value + "&ListN=pstfrm.slStayAddr3";
_sendfunc(url,CallForExe);
}
</script>
_sendfunc用於實現異步調用,獲取參數url的返回值,並傳給函數callforexe.
返回值獲得以後,由callforexe實現下拉選擇框option的數據填充!
而GetAreaOptions.ASPx則實現相對較簡單的功能,以utf-8的編碼方式返回請求國,省的下級省,市地址數據。