读书人

求级联下拉框代码解决办法

发布时间: 2012-01-13 22:43:29 作者: rapoo

求级联下拉框代码
jsp+ajax+mysql 的下拉选择框效果(最好是二级的),选择框中的内容为从数据库读取的内容!


[解决办法]
可以告诉你思路:
首先从数据库读出第一个select数据别表出所有信息
<select name= "ceshixitongmingcheng " onchange= "ceshi(this.form) ">
<option value=-1> -=请选测试名称-= </option>
<%
ArrayList list =km_fwCsDAO.selectCeshiXitong();
for(int i=0;i <list.size();i++){
String ceshixitongmingcheng = (String)list.get(i);
out.print( " <option value= ");
out.print(ceshixitongmingcheng);
if(request.getParameter( "ceshixitongmingcheng ")!=null&&new String(request.getParameter( "ceshixitongmingcheng ").getBytes( "iso8859-1 "), "gb2312 ").equals(ceshixitongmingcheng)){
out.print( " selected ");
}
out.print( "> ");
out.print(ceshixitongmingcheng);
out.print( " </option> ");
}
%>
</select>

当数据改变调用js方法ceshi(this.form)
function ceshi(selects){
var ceshixitongmingcheng=selects.ceshixitongmingcheng.value
var ceshishujushuxing= ' ';
if(ceshixitongmingcheng != '-1 ' ){
location= '/work/km_fwcs.jsp?ceshixitongmingcheng= '+ceshixitongmingcheng;//返回本页,带上参数
}
}

下面页面接收参数String canshu=request.getParameter( "ceshixitongmingcheng ");进行处理
如果canshu不等于空则进行下个select查询并输出结果
<select name= "ceshishujushuxing " >
<option value=-1> -=请选测试属性-= </option>
<%
if(request.getParameter( "ceshixitongmingcheng ")!=null){
ArrayList lista =km_fwCsDAO.selectCeshiShuxing(Change.tran(request.getParameter( "ceshixitongmingcheng ")));
for(int i=0;i <lista.size();i++){
String ceshishujushuxing = (String)lista.get(i);
out.print( " <option value= ");
out.print(ceshishujushuxing);
if(request.getParameter( "ceshishujushuxing ")!=null&&request.getParameter( "ceshishujushuxing ").equals(ceshishujushuxing)){
out.print( " selected ");
}
out.print( "> ");
out.print(ceshishujushuxing);
out.print( " </option> ");
}
}
%>
</select>

大概流程就这样,这种方法比较容易接受!

[解决办法]
给你几段我以前写的代码 :
public Vector TreeListLoading(String levelId,String parentId,
String name,
int position,
String level,
StringBuffer outHTML,
boolean init) {
//表示用户不属于任何一个组
if (levelId == " ") {
return new Vector();
} else {
//存放所有页面组件级别的form属性名
Vector buttonLevelList = new Vector();
//定义Vector对象childList存放所有孩子的ID
Vector childList = new Vector();
//定义Vector对象nameList存放所有孩子的名称
Vector nameList = new Vector();
//定义Vector对象pageList存放所有二级节点对应的页面的ID
Vector pageList = new Vector();
//定义查询语句用来获得参数parentId对应的孩子信息
String sqlGetChild = "SELECT ClassId,Name,pageId " +
"FROM privilege_module " +


"WHERE ClassId IN " +
"(SELECT classId " +
"FROM privilege_assign " +
"WHERE levelId = ' "+levelId+ " ') AND " +
"ParentId= ' "+parentId+ " ' AND " +
"moduleLevel < 3 " +
"ORDER BY ChildIndex ";

String sqlGetButtonLevelChild = "SELECT formName " +
"FROM privilege_module " +
"WHERE ClassId IN " +
"(SELECT classId " +
"FROM privilege_assign " +
"WHERE levelId = ' "+levelId+ " ') AND " +
"moduleLevel = 3 " +
"ORDER BY ChildIndex ";

try {
db.getConnection();
rs = db.getResult(sqlGetChild);
while (rs.next()) {
childList.addElement(rs.getString( "ClassId "));
nameList.addElement(rs.getString( "Name "));
pageList.addElement(rs.getString( "pageId "));
}
if (rs != null) {
rs.close();
}
rs = db.getResult(sqlGetButtonLevelChild);
while (rs.next()) {
buttonLevelList.addElement(rs.getString( "formName "));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
logger.error( " Time: "+DateTool.getCurrentlyTime()+
" Class:AttenanceMonthStatAction "+e);
if (rs != null) {
try {
rs.close();
}
catch (SQLException e1) {
logger.error( " Time: "+DateTool.getCurrentlyTime()+
" Class:AttenanceMonthStatAction "+e1);
}
}
db.closeResultSet();
db.closeConnection();
} catch (SQLException e) {
e.printStackTrace();
logger.error( " Time: "+DateTool.getCurrentlyTime()+
" Class:AttenanceMonthStatAction "+e);
if (rs != null) {
try {
rs.close();
}
catch (SQLException e1) {
logger.error( " Time: "+DateTool.getCurrentlyTime()+
" Class:AttenanceMonthStatAction "+e1);
}
}
db.closeResultSet();
db.closeConnection();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (rs != null) {
try {
rs.close();
}
catch (SQLException e1) {
e1.printStackTrace();
logger.error( " Time: "+DateTool.getCurrentlyTime()+
" Class:AttenanceMonthStatAction "+e1);
}
}
db.closeResultSet();
db.closeConnection();
}

int msize=childList.size();
if(msize> 0){
if(init){


for(int i=0; i <childList.size(); i++){
String idx = "D "+String.valueOf(i);
if(ifSub(childList.elementAt(i).toString(),1)){
outHTML.append( " <tr> <td height=\ "20\ " colspan=\ "2\ " bgcolor=\ "#99ccff\ " class=\ "sml-w-b\ ">   " +
" <a href=\ "javascript:void(0);\ " onclick=\ "expand(this, "+idx+ ");\ "> " +
nameList.elementAt(i).toString()+
" </a> </td> </tr> ");
outHTML.append( " <tr id=\ " "+idx+
"\ " style=\ "display:none\ "> " +
" <td> <table width=\ "190\ " border=\ "0\ " cellspacing=\ "1\ " cellpadding=\ "0\ " bgcolor=\ "#333366\ "> ");
TreeListLoading(levelId,childList.elementAt(i).toString(),
nameList.elementAt(i).toString(),
i,idx,outHTML,false);
}else{
outHTML.append( " <tr> <td height=\ "20\ " colspan=\ "2\ " bgcolor=\ "#99ccff\ " class=\ "sml-w-b\ ">   " +
nameList.elementAt(i).toString()+
" </td> </tr> ");
}
}
}else{
for(int i=0; i <pageList.size(); i++){
outHTML.append( " <tr> <td height=\ "20\ " colspan=\ "2\ " bgcolor=\ "#E6E6FA\ " class=\ "sml\ ">   " +
" <img id=\ "kigou101\ " src=\ "./resource/images/button01.gif\ " hspace=\ "5\ "> "+
" <a href=\ "../treeAction.do?pageId= "+pageList.elementAt(i)+ "\ " target=\ "main\ "> "+
nameList.elementAt(i).toString()+
" </a> </td> </tr> ");

}
outHTML.append( " </table> </td> </tr> ");
}
}

return buttonLevelList;
}
}
[解决办法]
代码给你发过去了

读书人网 >Java Web开发

热点推荐