2012-07-14 60 views
0

我想创建一个下拉菜单,如果选择美国从第一滴生成另一个下拉菜单中选择值 的基础上,就例如下来,然后第二个下拉菜单中包含美国的状态。 我已经做了很多的工作。我喜欢一个JavaScript和使用阵列选择国家下拉菜单中则指出

var country_arr = new Array("USA", "Singapore", "Pakistan") 
var s_a = new Array(); 
s_a[0]=""; 
s_a[1]="CA|NJ|NY"; 
s_a[2]="paas|naas|taas"; 
s_a[3]="Islamabad|karachi|lahore"; 

但我也希望选择国家和州的“名称”,发送到MySQL数据库。 我想我已经使用双维阵列,用于此。但是,无法实现代码的时间和严重需要你的帮助。

回答

4
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript"> 
     var citiesByState = { 
      USA: ["NY","NJ"], 
      Singapore: ["taas","naas"] 
     } 
     function makeSubmenu(value) { 
      if(value.length==0) document.getElementById("citySelect").innerHTML = "<option></option>"; 
      else { 
       var citiesOptions = ""; 
       for(cityId in citiesByState[value]) { 
        citiesOptions+="<option>"+citiesByState[value][cityId]+"</option>"; 
       } 
       document.getElementById("citySelect").innerHTML = citiesOptions; 
      } 
     } 
     function displaySelected() { 
      var country = document.getElementById("countrySelect").value; 
      var city = document.getElementById("citySelect").value; 
      alert(country+"\n"+city); 
     } 
     function resetSelection() { 
      document.getElementById("countrySelect").selectedIndex = 0; 
      document.getElementById("citySelect").selectedIndex = 0; 
     } 
    </script> 
</head> 
<body onload="resetSelection()"> 
    <select id="countrySelect" size="1" onchange="makeSubmenu(this.value)"> 
     <option></option> 
     <option>USA</option> 
     <option>Singapore</option> 
    </select> 
    <select id="citySelect" size="1"> 
     <option></option> 
    </select> 
    <button onclick="displaySelected()">show selected</button> 
</body> 
</html> 
1

可能更容易只是使用一个Web服务一样http://geodata.solutions/这意味着你可以拥有这一切,更无需维护自己的数据集。这是另一种选择。