本文目錄一覽:
JSP下拉框讀取資料庫內容問題
jsp頁面可以利用Ajax來獲取資料庫數據來:
在第一級列表的onchange事件中編寫:
//投訴信息來源信息級聯
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形式將前台每次獲取到的值傳遞給後台
},
success : function(response) {
var json = Ext.util.JSON.decode(response.responseText);
if (json.success) {
var data = json.strongcmList/strong;
if (“” == data) {
alert(“請選擇投訴類型”);
inputForm.t_tsfrom.focus();
$(“#ts_tsFrom”).empty();//每次需要將上一次的數據進行清空
} else {
$(“#ts_tsFrom”).empty();
//對獲取到的數據進行迭代
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);
}
}
}
});
}
後台返回數據:
public void getTsFrom() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
String ts_names = tsfrom;
ListCustomManage list = complaintsmanager.getTsDescribe(ts_names);
response.setContentType(“text/javascript”); // 後台控制的代碼
PrintWriter writer = response.getWriter();
// 將得到的list集合轉為JSON對象傳給前台處理
JSONArray j = JSONArray.fromObject(list);
writer.println(“{‘success’:true,’strongcmList/strong’:” + j.toString() + “}”);
}
在jsp中下拉框中如何獲取資料庫中的值
但是還有一種方法通過js獲取下拉框的值select name=”sel” onchange=”check()” — 增加onchange事件%while (rs.next()) {%option value=”” — 這裡沒有給選項賦值– 改為,如:option value=”%=rs.getString(1)%”%=rs.getString(1)%/option %}%/selectscript type=”text/javascript”function check(){var id = document.getElementsByName(“sel”).value;– 獲取下拉框的值如:拼接url打開頁面,var url = ‘xxxx.do?id=’ + id;//注,具體的url你要自己拼寫,我這個是列子,不能用的方法1,在本窗口打開頁面:window.location = url ;方法2,新窗口打開頁面window.open(url)}/script 追問: 我終於發現了,能讀取數據,可是把讀取的數據放入資料庫中就有問題了,難道還要轉碼才行嗎? 回答: 當然`~~ 追問: 頁面編碼是gb2312那我要怎樣轉碼呢? 回答: 首先你要知道你的資料庫的是什麼編碼的,你頁面的編碼要符合你資料庫的編碼,這樣的轉碼才是正確的 追問: 現在我不是從頁面讀取數據了,而是直接在程序中測試Date.valueOf(“1987-3-7”)比如我用這樣的方法把這個數據放到資料庫中去就自動變成了1905-6-1了,感覺太怪了這個就和編碼無關了 回答: 你具體的代碼我也不知道,也不好給你說,給你個UTF-8轉GB2312的代碼吧private String utf8Togb2312(String str){StringBuffer sb = new StringBuffer();for(int i=0; istr.length(); i++) {char c = str.charAt(i);switch (c) {case ‘+’:sb.append(‘ ‘);break;case ‘%’:try {sb.append((char)Integer.parseInt(str.substring(i+1,i+3),16));}catch (NumberFormatException e) {throw new IllegalArgumentException();}i += 2;break;default:sb.append(c);break;}}String result = sb.toString();String res=null;try{byte[] inputBytes = result.getBytes(“8859_1”);
jsp中下拉框中的值從資料庫中動態獲取
jsp中把資料庫全量查詢後填充select列表:
舉例說明:
table
tr
td width=”400px” align=”left”入學批次:SELECT NAME=”grade”
id=”grade” onchange=”refreshEduLevelAndSpecialAjax();” //選擇入學批次會刷新層次和專業
OPTION VALUE=”0″
–請選擇–
c:forEach items=”${gradeInfo}” var=”gradeInfo”
OPTION VALUE=”${gradeInfo.gradeName}”${gradeInfo.gradeName}
/c:forEach
/SELECT/td
td width=”400px” align=”left”統考課程:SELECT
NAME=”uniExamCourseId” id=”uniExamCourseId”
OPTION VALUE=”0″
–請選擇–
c:forEach items=”${unifiedExamCourseList}” var=”uniExamCourse”
OPTION VALUE=”${uniExamCourse.id}”${uniExamCourse.uniExamCourseName}
/c:forEach
/SELECT/td
/tr
tr
td colspan=”2″ id=”refreshEduLevelAndSpecialAjax” //設置ID,用於填充層次和專業的下拉框
table
tr
td width=”400″ align=”left”層 次:SELECT
NAME=”eduLevelId” id=”eduLevelId”
onchange=”refreshSpecialAjax();” //選擇層次後刷新專業
OPTION VALUE=”0″–請選擇–/OPTION
c:forEach items=”${educationLevel}” var=”educationLevel”
OPTION VALUE=”${educationLevel.id}”${educationLevel.educationLevelName}
/c:forEach
/SELECT/td
td width=”400″ align=”left” id=”refreshSpecialAjax”專 業:SELECT //設置ID,用於填充專業的下拉框
NAME=”specialId” id=”specialId”
OPTION VALUE=”0″–請選擇–/OPTION
c:forEach items=”${specialList}” var=”special”
OPTION VALUE=”${special.id}”${special.specialName}
/c:forEach
/SELECT/td
/tr
/table
/td
/tr
/table
java後台通過dao介面獲取specialList的值,並且保存到session即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232224.html