JSP下拉框读取数据库内容问题

JSP下拉框读取数据库内容问题,第1张

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.<strong>cmList</strong>

if ("" == data) {

alert("请选择投诉类型")

inputForm.t_tsfrom.focus()

$("#ts_tsFrom").empty()//每次需要将上一次的数据进行清空

} else {

$("#ts_tsFrom").empty()

//对获取到的数据进行迭代

for ( var i = 0i <data.lengthi++) {

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

List<CustomManage>list = complaintsmanager.getTsDescribe(ts_names)

response.setContentType("text/javascript")// 后台控制的代码

PrintWriter writer = response.getWriter()

// 将得到的list集合转为JSON对象传给前台处理

JSONArray j = JSONArray.fromObject(list)

writer.println("{'success':true,'<strong>cmList</strong>':" + j.toString() + "}")

}

1.下拉列表是<select

name=selectName>你进行选择(单选或者多选)

2.然后你在你接受信息的页面通过

String[]

selectValues=request.getParameterValue("selectName")

然后就可以获取想要的下拉列表值

但是还有一种方法通过js获取下拉框的值<select name="sel" onchange="check()">-- 增加onchange事件<%while (rs.next()) {%><option value="">-- 这里没有给选项赋值-- 改为,如:<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option><%}%></select><script 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=0i<str.length()i++) {char c = str.charAt(i)switch (c) {case '+':sb.append(' ')breakcase '%':try {sb.append((char)Integer.parseInt(str.substring(i+1,i+3),16))}catch (NumberFormatException e) {throw new IllegalArgumentException()}i += 2breakdefault:sb.append(c)break}}String result = sb.toString()String res=nulltry{byte[] inputBytes = result.getBytes("8859_1")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9801893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存