jquery从数据库中获取旧值

时间:2010-03-23 09:01:56

标签: jquery jsp servlets

在我的jsp页面中,我有一个jquery区域,它将值传递给servlet,后者返回dropdownlist的输出。然后jsp文件进行一些更新,因此在重新填充时,下拉列表中的某些值不应该存在。但它没有发生。我的jquery代码是

 $("#cbocode").change(function(){
   var cdid=$("#cbocode option:selected");
   $.get("trnDC?caseNo=20&cdid="+cdid.text(),function(data){
       $("#divinstrument").html(data);
   })

,servlet代码是

 case 20:{ //jquery call
                    String cdid=(String) request.getParameter("cdid");
                    Statement st = con.createStatement();
                    ResultSet rs = st.executeQuery("select instrumentid from mstinstrument where codeid='" + cdid + "' and rec_Status='A' and statusid='U' and Agentid='METLAB'");
        if (!rs.wasNull()){
                    //List data=new ArrayList();
                    String v="<select id=cboinstr>";
                   while (rs.next())
                   {
                    //   data.add(rs.getString("vend_code"));
                     v += "<option>" + rs.getString("instrumentid").toString() + "</option>";
                   }
                    v+="</select>";
                    response.setContentType("text/html");
                    PrintWriter out = response.getWriter();
                    out.print(v);
                    }
                    else{
                        response.setContentType("text/html");
                    PrintWriter out = response.getWriter();
                    out.print("no data found");
                    }

我失踪的地方???

2 个答案:

答案 0 :(得分:2)

获取请求由浏览器缓存。使用cache: false方法使用$.get("trnDC?caseNo=20&cdid="+cdid.text(),function(data){ $("#divinstrument").html(data); })

而不是:

$.ajax({url: "trnDC?caseNo=20&cdid="+cdid.text(),
       cache: false,
       success: function(data){
                    $("#divinstrument").html(data);
                }
       });

使用:

{{1}}

答案 1 :(得分:1)

默认情况下,缓存get请求。您可以使用@kgiannakakis建议的内容并设置cache:false。我不是100%,但我认为Internet Explorer可能有问题吗?

为此,您需要将$ .get更改为使用$ .ajax,例如:

$.ajax({
   type: 'GET'      
   url: "trnDC?caseNo=20&cdid="+cdid.text(),
   success: function(data){
               $("#divinstrument").html(data);
   },
   cache: false
});

我还有其他两种方法可以解决您的问题:

从Get更改为Post。

$.post("trnDC?caseNo=20&cdid="+cdid.text(),function(data){
       $("#divinstrument").html(data);
   })

添加一个总是不同的'false'参数,例如javascripts Date.getDate()