自己做的Demo,搭建好了ssm框架之後,做了一個註冊頁面。 先用同步的方式從資料庫取數據,但是用js在頁面上一直取不出數據,數據格式為json,反覆檢查數據沒問題。 問題分析,應該是同步請求html頁面,同時js再請求其他的數據,導致錯誤,改為採用Ajax非同步請求省份城市信息,成功。 ...
自己做的Demo,搭建好了ssm框架之後,做了一個註冊頁面。
先用同步的方式從資料庫取數據,但是用js在頁面上一直取不出數據,數據格式為json,反覆檢查數據沒問題。
問題分析,應該是同步請求html頁面,同時js再請求其他的數據,導致錯誤,改為採用Ajax非同步請求省份城市信息,成功。
1 //省市聯動 2 var provices = []; 3 var citys = []; 4 var locations = null; 5 //Ajax請求後端數據 6 $.ajax({ 7 async:true, 8 type: "get", 9 url: "../location/findAll.do",//註意路徑 10 success:function(data){ 11 12 locations = data.cityList; 13 $.each(locations, function(i,n) { 14 var pojo = locations[i]; 15 16 if(pojo.proviceId == '0'){//proviceId == '0'==>是省份 17 provices.push(pojo); 18 }else{ 19 citys.push(pojo); 20 } 21 }); 22 23 //向省份中添加選項 24 $.each(provices, function(i,n) { 25 $("#proviceSelect").append("<option value='"+n.id+"'>"+n.name+"</option>"); 26 }); 27 28 }, 29 }); 30 31 32 //城市選項框,監控省份選項的變化 33 $("#proviceSelect").change(function(){ 34 //先清空之前的城市選項 35 $("#citySelect").empty(); 36 //得到省份的id 37 var pId = $("#proviceSelect").val(); 38 //遍歷城市集合,拿出proviceId和pid相等的城市,放入選項框 39 $.each(citys,function(i,n){ 40 var city = citys[i]; 41 if(city.proviceId == pId){ 42 $("#citySelect").append("<option value='"+city.id+"'>"+city.name+"</option>"); 43 } 44 }) 45 });