自动重新加载Div并获取变量以供使用

时间:2013-12-21 21:28:32

标签: php jquery ajax

我使用像这样的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中使用该变量。

问候

丹尼斯

2 个答案:

答案 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更新所有分钟。