Ajax – 提交后如何刷新

在我的应用程序发布提交后,如何刷新页面的一部分(“DIV”)? 我在插件ajaxForm中使用JQuery。 我用“divResult”设置我的目标,但页面在“divResult”中重复你的内容。 资料来源:

 $(document).ready(function() { $("#formSearch").submit(function() { var options = { target:"#divResult", url: "http://localhost:8081/sniper/estabelecimento/pesquisar.action" } $(this).ajaxSubmit(options); return false; }); })  

   ...  ... 
Name Phone
/plugins/jquery/tablesorter/addons/pager/icons/first.png" class="first"/> /plugins/jquery/tablesorter/addons/pager/icons/prev.png" class="prev"/> /plugins/jquery/tablesorter/addons/pager/icons/next.png" class="next"/> /plugins/jquery/tablesorter/addons/pager/icons/last.png" class="last"/> 10 20 30 40 <option value="">todos Total de registros:

谢谢。

要使用jquery解决这个问题,我会试试这个;

 $(document).ready(function() { $("#formSearch").submit(function() { var options = { /* target:"#divResult", */ success: function(html) { $("#divResult").replaceWith($('#divResult', $(html))); }, url: "http://localhost:8081/sniper/estabelecimento/pesquisar.action" } $(this).ajaxSubmit(options); return false; }); }); 

或者,您可以让服务器只返回需要插入div的html而不是html文档的其余部分。

我真的不知道TableSorter插件,但我知道每次重新加载元素时都需要重新初始化TableSorter插件。 所以在你的成功函数中添加一行,例如

 success: function(html) { var resultDiv = $("#divResult").replaceWith($('#divResult', $(html))); $('table.tablesorter', resultDiv).TableSorter(); } 

您的问题出在服务器端:您必须创建一个只返回所需div的页面,然后更改“url”以匹配该页面。

目前您正在使用AJAX调用加载整个页面,这就是它返回整个页面的原因。

您可以使用大多数正常的jquery ajax函数参数和ajaxSubmit。 只需传递一个成功的function。

 $('#formSearch').ajaxSubmit({success: function(){ /* refresh div */ }); 

请参阅此处以获取更详细的示例。

如果你只是想用你的post结果覆盖它之前使用相同的静态内容来刷新你的div ,你可以试试类似的东西:

 $("#Container").html($("#Container").html()); 

当然要小心内部HTML没有改变,或者你可以将innerHTML存储在document.ready()函数的变量中,然后在需要时加载它。 对不起,写得很忙。

使用jQuery,有时当我执行.get ajax调用来更新数据库时,我使用成功回调函数中的简单jQuery .load语句重新加载/刷新页面的另一部分来替换div的内容。

 $("#div_to_refresh").load("url_of_current_page.html #div_to_refresh") 

我想指出,这不是重新加载一小部分数据的最有效方法,因此我只会在低流量的Web应用程序上使用它,但编码很简单。