ajax在页面刷新之前不会加载新的sql结果
ajax wont load new sql results until page refresh
我正在构建一个论坛,并使用此代码加载所有评论forum_retrieve.php
,目前效果良好。
$(document).ready(function() {
$('#results_holder').load('forum_retrieve.php<? echo ' ? forum_id = ' . urlencode($forum_id) ?>').show();
});
但是,当用户将表单提交给forum_handle.php
(将注释保存到sql)并使用重定向回来时
if ($connect->query($sql) === TRUE) {
header('Location: forums.php?id=' . $_POST['forum_id']);
} else {
Ajax不会加载新结果,即使我提交了5条评论,它们也不会加载,直到我刷新页面或点击另一个页面并返回。
我甚至尝试过将ajax延迟30秒,但它仍然不会加载新结果,即使我可以在计时器结束前在sql中看到它。
我试过使用no caching headers
。我也试过$(window).ready
。
难道不应该在每次加载文档时都进行新的查询吗?我不明白它为什么不选择。任何建议都将不胜感激。
首先:load()并不是像您想象的那样使用的,根本不是。它只是在加载$('#results_holder')时触发一个函数。就是这样。你在那里没有传递任何函数,所以你没有得到任何结果。
然后,正如Daniel所指出的,一旦文档准备好,load()函数就只触发一次。然后脚本停止运行,所以它没有机会按照您的意愿运行。
您想要做的是不时地从forum_retrieve.php中获取内容,并将其显示在适当的容器中。
试试这样的东西:
$(document).ready(function() {
var forumID = '<?= urlencode($forum_id) ?>';
setInterval(function() {
$.get({
url: 'forum_retrieve.php',
data: {forum_id: forumID}
})
.done(function(data) { $('#results_holder').html(data); });
}, 10000);
});
这会每隔10000ms(=10秒)触发一个函数,从forum_retrieve.php中检索内容,并将其注入$('#results_holder')元素。让我知道它是否有效!
相关文章:
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- 在safari和chrome中,js图像加载产生了奇怪的结果
- 清除网格中的存储和加载搜索结果
- 使用 AJAX 在页面加载时自动提交表单并获得 html 类型结果
- 无需重新加载即可播放MySQL结果.AJAX 正在失败
- ajax在页面刷新之前不会加载新的sql结果
- 使用Javascript从DB中筛选结果,这将使DIV重新加载它'基于新参数的内容
- Javascript 不工作,结果打印后浏览器仍在加载
- 将javascript函数的结果调用到Jquery css事件中,加载和调整大小
- 从 JSON(db 查询结果)加载大型 javascript 数组而不会使页面崩溃
- 从 JSON 文件加载后立即使用数据结果
- 从两个选择列表中选择 A + B 时,#Anchor 加载结果页面
- 谷歌在第一个字母后放置自动完成加载结果
- WebGL纹理加载结果(Javascript)类型错误
- 加载结果后重定向到新页面
- jquery自动完成没有正确加载结果和菜单不显示,除非我按下键
- 实时加载结果(ajax)
- Mvc5基于searchTerm通过ajax选择加载结果
- 当滚动到窗口顶部时,加载结果jQuery