日期:2014-05-18  浏览次数:20639 次

jsp里面想用下拉文本框的值做为查询条件,如何实现?
请教一个问题:jsp里面想用下拉文本框的值做为查询条件,如何实现?
<body
<%
String   sql   =   "select       *       from       t_Traintime     where   trainNo   like "   +document.form1.part.value;

......
%>
/body>

老是说   无效的   document   类型,我该怎么处理这个问题?要是写在       function   里面怎么写?
<script   type= "text/javascript ">
    function   Query()
    {
      alert(document.form1.part.value);
      //如何写查询的where   条件呢??
    }
  </SCRIPT>
/head>  

我的文本框是   获得的值:
<body
<form   name= "form1 ">  
<select   name= "menu1 "   onChange= "document.form1.get.value=this.options[this.selectedIndex].value ">  
<option   selected> 请选择 </option>  
<option   value= "TAO "> 1 </option>  
<option   value= "TBO "> 2 </option>  
<input   type= "text "   value= "初始值 "   size= "30 "   name= "part "   id= "part ">  
</form>  
....

/body>
ECLIPSE   Web   project   jsp   里面遇到的问题。
急啊。。。。。。。。。。。。。。。。。。。。。


------解决方案--------------------
<%
String menu1= " ",part= " ";
String sql1= " ",sql2= " ",sql3= " ";
String sql = "select * from t_Traintime where 1=1 ";
//1、
if(request.getParameter( "menu1 ")==null)
menu1=Str_rep(request.getParameter( "menu1 "));
//2、
if(request.getParameter( "part ")==null)
part=Str_rep(request.getParameter( "part "));

//判断
if(!menu1.equals( " "))
sql1= " and menu1= ' "+menu1+ " ' "; //下拉列别框,不知道你用的是什么字段,我默认用menu1,到时候你自己改
if(!part.equals( " "))
sql2= " and trainNo like '% "+part+ "% ' ";

sql=sql+sql1+sql2;
out.print(sql+ " <br> "); //查询的时候你用这个sql就可以

//默认没有提交的时候显示的是全部记录,当提交的时候1、2、就会接收值,sql就会自动变化。
//当然提交的是本页
%>

------解决方案--------------------
对不起,忘加了点东西。
<%!
public String Str_rep(String str){
if(str==null||str.equals( " ")){
str = " " ;
}else{
try {
// str = new String(str.getBytes( "ISO8859-1 "));
str = new String(str.getBytes( "ISO8859_1 "), "GB2312 ");
}catch (Exception ex) {}
}
return str ;
}
%>