[PHP] 自動選擇郵遞區號

摘要:[PHP] 自動選擇郵遞區號

第一篇文章...很高興在IE可以這麼順利的編輯

自動選擇郵遞區號,這鬼在寫PHP個人資料的時候還挺常遇到的...
依照目前我所懂的PHP和JavaScript的程度,還勉勉強強可以看著別人的範例試寫出來...參考網站請看網誌最下面~
根據"
Incredible C Sharp"這個部落格的作者willy0080所簡化的程式碼,為了達到POST的功能,我加以修正了一些東西。
在我想要的東西裡,我需要的是組合縣市、郵遞區名、地址並且另外記錄郵遞區號,將這兩樣東西POST到另一張網頁做記錄。
因此我根據"
forum.interfly.net"這個論壇的這篇文章charles所發表的程式邏輯,加以修正了willy0800的程式碼,以達到資料可以順利POST的功能。

willy0800說:

1  <option value="25">嘉義市</option>
2 </select>
3 <select id="Zone" runat="server" onchange="changeZone()"></select>
4 <input id="Zip" runat="server" type="text" disabled="disabled" />

而我修改後:

1  <option value="嘉義市">嘉義市</option>
2  </select>
3 <select id="zipName1" name="zipName1" onchange="changeZone()"></select>
4 <input id="zipNumber1" name="zipNumber1" size="3" type="text" readonly="readonly"/>
5 <input name="address1" type="text" size="30" />

 

然而在JavaScript裡我也做了些修正:
willy0800說:

function changeCity() {    
  document.getElementById("Zone").length=0; //先將鄉鎮市的下拉選單清除
  var City=document.getElementById("City").selectedIndex; //取得被選取的縣市的索引
  var ZoneLength=Zone[City].length; //根據縣市索引得知相對應鄉鎮市群組的陣列長度
  for(var i=0; i<ZoneLength; i++){ //塞值
    var newOpt=new Option(Zone[City][i], i, true, false);
    document.getElementById("Zone").options.add(newOpt);
  }

  changeZone();
}

修正後:

01     function changeCity2() {    
02   document.getElementById("zipName2").length=0; //先將鄉鎮市的下拉選單清除
03   var City=document.getElementById("city2").selectedIndex; //取得被選取的縣市的索引
04   var ZoneLength=Zone[City].length; //根據縣市索引得知相對應鄉鎮市群組的陣列長度
05   for(var i=0; i<ZoneLength; i++) { //塞值
06       var newOpt=new Option(Zone[City][i], Zone[City][i]);                
07       document.getElementById("zipName2").options.add(newOpt);
08   }
          
09   changeZone2();
10     }

不一樣的地方就在於我直接修改第六行的程式碼,並且直接傳入相對應的名稱。是我的功力還不足,所以只能用直覺的方式設計這個功能。
 

根據上述的做法,就可以修正好POST的問題...
POST的結果為:嘉義市、全區、600
基本上這樣就可以了...