濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法

jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法

熱門標(biāo)簽:南京新思維電話機(jī)器人 企業(yè)怎么在聯(lián)通申請(qǐng)400電話 如何用中國(guó)地圖標(biāo)注數(shù)字點(diǎn) 聊城智能電銷機(jī)器人外呼 地圖標(biāo)注市場(chǎng)怎么樣 南昌市地圖標(biāo)注app 泰州泰興400電話 怎么申請(qǐng) 百度地圖添加標(biāo)注圖標(biāo)樣式 好操作的電話機(jī)器人廠家

本文實(shí)例講述了jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法。分享給大家供大家參考,具體如下:

項(xiàng)目告一段落,現(xiàn)在將遇到的比較實(shí)用的東西記錄下來,寫了多遍了,謹(jǐn)記于此,以備查看!

1、首先在數(shù)據(jù)庫(kù)中獲取第一個(gè)下拉框的數(shù)據(jù):

s:select listKey="tsFrom" id="t_tsfrom" cssClass="required" 
listValue="tsFrom" cssStyle="width:90" list="tsfrom1" 
name="tsFrom" theme="simple" headerKey="" 
onchange="getTsFromDescribe(this);" headerValue="--請(qǐng)選擇--" />

后臺(tái)處理:

@Autowired 
private CustomMaManager custommamanager;//注解相當(dāng)?shù)暮糜冒。a都省了一大截 
tsfrom1 = custommamanager.getTsFrom(); 

Service:

//得到投訴來源 
public ListCustomManage> getTsFrom(){ 
  return custommanagedao.getTsFrom(); 
}

dao:

/**得到產(chǎn)品類型**/ 
public ListCustomManage> getTsFrom(){ 
  return this.find("SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC");
}

注意:Oracle在java代碼里取出重復(fù)值與SqlServer不一樣,它得使用:

復(fù)制代碼 代碼如下:
SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC

先new實(shí)體bean(CustomManage) 然后在實(shí)體bean中給相應(yīng)字段設(shè)置構(gòu)造方法,不然將會(huì)出現(xiàn)后臺(tái)已經(jīng)返回了值,但是在前臺(tái)下拉框中不顯示,下拉框空白的現(xiàn)象。

public CustomManage(String khname,int s){ 
  this.khname=khname; 
} 
public CustomManage(String cpname,String type){ 
  if("1".equals(type)){ 
   this.cpname=cpname; 
  }else if("2".equals(type)){ 
   this.tsFrom=cpname; 
  }else if("3".equals(type)){ 
   this.khname=cpname; 
  } 
}

這里需要在bean的實(shí)體類里面加入相應(yīng)的構(gòu)造方法,以此來供去重使用。

至此第一級(jí)的數(shù)據(jù)準(zhǔn)備已經(jīng)差不多了。使用S標(biāo)簽的list集合來獲取后臺(tái)傳遞過來的值。

2、第二級(jí)下拉菜單的級(jí)聯(lián)====利用Ajax來獲取數(shù)據(jù)

在第一級(jí)列表的onchange事件中編寫:

//投訴信息來源信息級(jí)聯(lián) 
function getTsFromDescribe(ts_describe){ 
 var tsfrom = $("#t_tsfrom").val(); 
 var tstsFrom = $("#ts_tsFrom").val(); 
 Ext.Ajax.request( { 
  url : '${ctx}/complaints/complaints!getTsFrom.action', 
  params : { 
   tsfrom : tsfrom//通過json形式將前臺(tái)每次獲取到的值傳遞給后臺(tái) 
  }, 
  success : function(response) { 
   var json = Ext.util.JSON.decode(response.responseText); 
   if (json.success) { 
    var data = json.strong>cmList/strong>; 
    if ("" == data) { 
     alert("請(qǐng)選擇投訴類型"); 
     inputForm.t_tsfrom.focus(); 
     $("#ts_tsFrom").empty();//每次需要將上一次的數(shù)據(jù)進(jìn)行清空 
    } else { 
     $("#ts_tsFrom").empty(); 
     //對(duì)獲取到的數(shù)據(jù)進(jìn)行迭代 
    for ( var i = 0; i  data.length; i++) { 
     var id = data[i]; 
     var name = data[i]; 
     $("#ts_tsFrom").append( 
       "option value='" + id + "'>" + name + "/option>"); 
    } 
    dwr.util.removeAllOptions('tstsFrom'); 
    dwr.util.addOptions('tstsFrom', data); 
 } 
} 
} 
}); 
}

后臺(tái)返回?cái)?shù)據(jù):

public void getTsFrom() throws Exception { 
  HttpServletResponse response = ServletActionContext.getResponse(); 
  String ts_names = tsfrom; 
  ListCustomManage> list = complaintsmanager.getTsDescribe(ts_names); 
  response.setContentType("text/javascript"); // 后臺(tái)控制的代碼 
  PrintWriter writer = response.getWriter(); 
  // 將得到的list集合轉(zhuǎn)為JSON對(duì)象傳給前臺(tái)處理 
  JSONArray j = JSONArray.fromObject(list); 
  writer.println("{'success':true,'strong>cmList/strong>':" + j.toString() + "}"); 
}

到此一個(gè)從數(shù)據(jù)庫(kù)里動(dòng)態(tài)獲取值,并且實(shí)現(xiàn)二級(jí)菜單級(jí)聯(lián)的功能就做的差不多了。發(fā)表出來希望對(duì)你對(duì)我都有好處哈。

這里加注一點(diǎn)就是在修改的時(shí)候下拉框的值不會(huì)保存,就是上一次點(diǎn)擊提交的時(shí)候保存在數(shù)據(jù)庫(kù)里的值無(wú)法填充到下拉框。

處理辦法:

var op1 = document.getElementById("op1").value; 
if(op1!=null){ 
  $("#cp_validity").val(op1); //將取出來的值塞到下拉框中。一個(gè)蘿卜一個(gè)坑 
} 
input type="hidden" id="op1" value="${compDisposal.validity}">//使用表達(dá)式將存在數(shù)據(jù)庫(kù)里的值取出來,放在隱藏域里面 

希望本文所述對(duì)大家jsp程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • js實(shí)現(xiàn)的全國(guó)省市二級(jí)聯(lián)動(dòng)下拉選擇菜單完整實(shí)例
  • 最好用的省市二級(jí)聯(lián)動(dòng) 原生js實(shí)現(xiàn)你值得擁有
  • js操作二級(jí)聯(lián)動(dòng)實(shí)現(xiàn)代碼
  • 全國(guó)省市二級(jí)聯(lián)動(dòng)下拉菜單 js版
  • js實(shí)現(xiàn)select二級(jí)聯(lián)動(dòng)下拉菜單
  • js實(shí)現(xiàn)的下拉框二級(jí)聯(lián)動(dòng)效果
  • 簡(jiǎn)單js代碼實(shí)現(xiàn)selece二級(jí)聯(lián)動(dòng)(推薦)
  • JS簡(jiǎn)單實(shí)現(xiàn)城市二級(jí)聯(lián)動(dòng)選擇插件的方法
  • javascript支持區(qū)號(hào)輸入的省市二級(jí)聯(lián)動(dòng)下拉菜單
  • js實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)簡(jiǎn)單實(shí)例

標(biāo)簽:臨汾 山南 自貢 烏蘭察布 吉林 開封 白銀 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法》,本文關(guān)鍵詞  jsp,從,數(shù)據(jù)庫(kù),獲取,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于jsp從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級(jí)聯(lián)動(dòng)菜單的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    新昌县| 陇西县| 犍为县| 甘泉县| 山东省| 周宁县| 武安市| 禹城市| 宁安市| 沿河| 新津县| 奇台县| 峨眉山市| 凯里市| 威远县| 德安县| 绥宁县| 绵阳市| 黄骅市| 泰兴市| 梅州市| 平武县| 贡山| 汾西县| 元江| 定州市| 高陵县| 冀州市| 潮安县| 永仁县| 双峰县| 黔西县| 美姑县| 威海市| 荆州市| 睢宁县| 滦南县| 思茅市| 石渠县| 昌邑市| 邢台县|