本文目录一览:
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即可。