2014-09-22 108 views
-1

我必须采取一个表中的值保持值:跨越两个JSP页面

<script type="text/javascript">  
    var activeRequest; 
    $(document).ready(function(){ 

     $(".i_search").on("click", function(event){ 
      event.preventDefault(); 
      activeRequest = $(this).closest('tr').find('.request').text(); 
      renderElement();   
     });  
    }); 

    function renderElement(inUrl){ 
     $.ajax({ 
      url: "/?pagename=SiteEntry_LT_EM/Advise/CS_Advise_Detail", 
      type: "POST", 
      data : {"advice_id":activeRequest} 
     })  
     .done(function(response) { 
      $("#popUpDetail").html(response).fadeIn('slow'); 
     });  
    } 
</script> 

在其他JSP页面中我有:

<%= ics.GetVar("advice_id") %> 

但是当我点击$(".i_search")价值ics.GetVar("advice_id")在其他页面不要更改。也许这个值保存在缓存中。

我做了同样的使用PHP和它的工作原理,每次我cliked数据更改。现在我更加困惑。

在PHP:

<?php echo $_POST["advice_id"]; ?> 
+0

已经提供的页面不会被更新,除非他们正在进行ajax轮询或类似的事情。 – developerwjk 2014-09-22 19:39:00

+0

即使我用'onclick'事件再次打电话? – AndreFontaine 2014-09-23 14:40:06

+0

任何想法? @developerwjk – AndreFontaine 2014-09-23 17:16:07

回答

0

首先,使用POST的时候,你不应该在URL中包含但在数据部分的参数。不要混合,并采取两种方式。

其次,如果你怀疑一个缓存的问题,在你的Ajax调用,包括随机参数和/或设置缓存:假的,就像这样:

$.ajax({ 
     url: "/", 
     type: "POST", 
     cache: false, 
     data : 
     { 
      "advice_id":activeRequest, 
      "pagename": "SiteEntry_LT_EM/Advise/CS_Advise_Detail" 
      "r": Math.random() 
     } 
    }) 

,您还可以在设置无缓存头servlet或jsp被ajax调用,以防止浏览器缓存它:

response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 
response.setHeader("Pragma","no-cache"); 
+0

谢谢,它是SiteEntry的Oracle Web Center站点中的一个参数:“SiteEntry_LT_EM/Advise/CS_Advise_Detail”缓存规则:已删除的缓存。 – AndreFontaine 2014-09-23 20:58:53