php - Ajax 只在页面重新加载后提供数据
问题描述
我正在尝试为我的博客的非活动文章创建一个通知按钮,并且我不希望管理员重新加载他/她的页面以查看提交的新非活动文章,因此我想使用 AJAX 执行此操作。
我将 html 数据添加到:
<ul id="menu1" class="dropdown-menu list-unstyled msg_list" role="menu">
但是我的代码只在页面重新加载后加载一个新结果。
此外,每个循环重复相同的数据 2 次。
怎么了?
<script>
$.ajax({
type: "POST",
url: 'inc/file.php',
dataType: 'json',
success: function(response)
{
if (response) {
var html = '';
$.each(response, function(key, value){
html += "<li><a href='editArticle?id="+response.id+"&act='><span>"+response.title+"</span><span>"+response.story+"</span></a></li>";
})
$('#menu1').prepend(html);
$('#number').text(response.number);
}
}
});
</script>
这是我的 file.php,而只获取一个数据:
<?php
require $_SERVER['DOCUMENT_ROOT'].'/config/init.php';
require CLASS_PATH.'article.php';
$article = new Article();
$list = $article->getInactiveArticle();
$number = $article->countInactiveArticle();
$output = [];
foreach ($list as $lists) {
$output['title'] = $lists->title;
$output['id'] = $lists->id;
$output['story'] = $lists->story;
$output['number'] = $number[0]->inactive_articles;
}
echo json_encode($output);
解决方案
尝试使用setTimeout()
函数。
function timeout() {
setTimeout(function(){
$.ajax...
timeout()
}, 3000);
}
推荐阅读
- python - 尽管标头从那里开始,但 CORS 标头“Access-Control-Allow-Origin”丢失
- log4net - 当应用程序作为服务运行时,Log4net RollingFileAppender 不写入
- node.js - 在数组子 Firestore 中搜索
- php - 根据查询结果在 HTML/PHP 中创建表
- loopbackjs - 我从 lb4 openapi cli 命令生成文件找不到模型文件夹
- javascript - 如何在 flex by twilio 中查看完整的对话历史记录?
- mysql - 3 mysql表连接
- kotlin - 如何在 kotlin 中使用 return@ 和 if 表达式?
- swift - 检查屏幕上是否可见视图 [Swift 5.1]
- python - 使用标准将数据从一个数据框填充到另一个数据框,然后重复填充直到标准更改