我使用像这样的ajax刷新:
<script language="JavaScript">
$(document).ready(function() {
var refreshId = setInterval(function() {
$("#refresh_technik").load('refresh/technik.php');
}, 1000);
});
</script>
我有一个仪表板,在我的仪表板中我包含top_navigation.php而div“refresh_id”在top_navigation.php中。
refresh / technik.php看起来像:
$db_3s = new Database("3s");
$anzahl_stoerungen = $db_3s->executeQuery("SELECT * FROM 3s_stoerungen WHERE status = 'open' ");
$stoerungen_gesamt_aktuell = $anzahl_stoerungen->getRowCount();
echo $stoerungen_gesamt_aktuell;
在我的top_navigation.php中,我可以在右上方看到$ stoerungen_gesamt_aktuell的值。它工作正常。
但是现在我将使用dashboard.php上的$ stoerungen_gesamt_aktuell做一些其他的PHP内容。但这不可能! $ stoerungen_gesamt_aktuell是空的!也无法在top_navigation.php中使用该变量。
问候
丹尼斯
答案 0 :(得分:0)
听起来你试图通过你的ajax请求,页面的其他位置,而不仅仅是$stoerungen_gesamt_aktuell
div加载"#refresh_technik"
之后使用dashboard.php
的值。您无法继续在.load()
页面上使用通过ajax加载的PHP变量,就好像它是页面本身的一部分一样。但是,您可以将值加载到JavaScript变量中,然后使用javacript在页面上重用它。我建议您使用$.get()
实际执行完整的ajax请求,而不是使用jQuery的function reuse_my_value(val) {
$('#refresh_technik').text(val);
$('#some-other-location').text(val);
// do stuff with val variable
}
// shortcut for $(document).ready(function() {
$(function() {
$.get('refresh/technik.php', function(r) {
reuse_my_value(r);
}, 'text');
});
函数。然后将该值的结果存储在javascript变量中,然后在加载后使用页面上其他位置的javascript变量。这样的事情看起来是正确的:
{{1}}
希望这能满足您的需求。如果我误解了这个问题,请告诉我。
答案 1 :(得分:0)
感谢您的帮助。你理解得对。但我认为我的代码犯了一个错误,或者我误解了它。
现在我拿你的代码并将它与我的相结合,我认为我的错误,或者?
我的主要问题是,我尝试写一个小的ajax,告知用户新的故障。另一个用户将新故障写入数据库。
我找到了一个代码,它对我有用:
var old_count = <?php echo $_SESSION["anzahl_technische_stoerungen"] ?>;
setInterval(function(){
$.ajax({
type : "POST",
url : "refresh/technik.php",
success : function(data){
if (data > old_count) {
$.notification(
{
title: "Error notification",
content: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since the 1500s.",
error: true,
showTime: true,
border: true
}
);
old_count = data;
}
}
});
},1000);
我的基本想法是:
1)用户登录系统,会话将以实际故障数开始。 2)更新功能检查所有新故障,如果有新故障,div将重新加载,并在主体上一个PHP脚本比较变量。 3)会话变量将每5分钟取消设置并生成一个新变量。
无法使用ajax请求中的变量将其与会话变量进行拼接。
但是现在!!!!
我找到了上面的代码。它对我有用,它解决了我的主要问题。
但Session变量(var old_count)仅在用户重新加载页面时更新。我认为这将有助于你的脚本。
old_count更新所有5分钟,刷新/ technik.php更新所有分钟。