2012-10-26 239 views
1

这里过滤了一些数据后刷新页面时,遇到了相同的内容是我的情况:阿贾克斯

在页面的中心,我有内容DIR:<div id="content"></div>

在的右侧页面,我有一个<form method="post" action="?p=search">与一些输入字段和提交按钮:<input type="submit" id="searchButton" />

我在向index.php提交表单时做了AJAX请求,仅仅是因为索引加载了我的所有环境,然后它包含search.php并退出。

search.php文件返回json发送到数据库的查询返回的数组。

有了这个返回,当请求结束时,我用数据更新我的内容div。

,但我没有意识到这一点,如果我只是重新加载页面,无需点击搜索按钮,我所有的搜索消失,它只是返回的默认页面所做的主要内容查询..

我该如何解决它?有没有一个好的做法呢?

谢谢,谢谢。

+0

什么时候想它重装?我假设你想单击提交按钮并执行AJAX请求,然后将数据添加到页面中? –

+0

是的,这就是我正在做的。但是当我重新加载页面时,只需按'F5'或类似的东西,我就不会得到相同的结果,因为只需在提交表单时完成ajax请求。 –

+0

是的。没有什么(在我的知识中)你可以做的。正如你所说的,当你重新加载你的页面时,你通过表单提交的所有数据都消失了。你能解释一下你的情况,你为什么要重新加载页面? –

回答

1

您需要在搜索中尝试ajax时添加初始值。

当初始值不为空时再次调用您的ajax,请尝试$(window).load(function()来检测您的初始值。

您可以选择初始cookie。

例如:

//assume this call your ajax 

    var ajax_search = function(str) { 
     $.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: $str 
     }).done(function(msg) { 
     alert("Data Saved: " + msg); 
     setCookie("IsSubmitSearch", "true", 1); 
     }); 
    } 

    // when click submit search 
    $("#search").click(function() { 
     var str = $("#inputSearch").serialize(); 
     ajax_search(str); 

     return false; 
    }); 

    $(window).load(function() { 
     var IsSubmitSearch = getCookie("IsSubmitSearch"); 
     if (IsSubmitSearch != null && IsSubmitSearch != "") { 
      //cookie exists then you refreshed this page(F5, reload button or right click and reload) 
      //SOME CODE 
      var str = $("#inputSearch").serialize(); 
      ajax_search(str); 
      DeleteCookie("IsSubmitSearch"); 
     } 
     else { 
      //cookie doesnt exists then you landed on this page 
      //SOME CODE 
      setCookie("IsSubmitSearch", "true", 1); 
     } 
    }); 
+0

谢谢@hendrathings,我会尝试在我的会话中做这样的事情。 –