2012-10-01 108 views
0

的JavaScript我有这个结构的PHP页面:刷新DIV包含PHP内容

<?php 
include 'header.php'; 
include 'content.php'; 
include 'footer.php'; 
?> 

在header.php中,我有一个统计数据库中的某些行的功能。

$show =$mysql->count('someparam', $foo['bar']); 
    if ($show > 0) { 
     echo $show; 
    } 

这一切都很好。现在,在content.php文件中,用户可以执行在标题中更改此$show值的操作,但我需要重新加载页面以查看更新后的$show号码。

我想用JavaScript解决这个问题,但不知道如何去做。

我试图用一个JavaScript重载解决它的计时器,像这样:

<script> 
function render(){ 
    $('.customer-database').html(.customer-database) 
} 
window.setInterval(render, 500); 
</script> 

$show计数器是div类costumer-database内。这不起作用,因为我需要将HTML代码放在HTML之后,但我不想放入HTML代码。我只是想重新加载它。这可能吗?

我接受任何JavaScript和PHP的建议。

+0

你不能这样做。一个php文件必须在服务器端进行处理。你可以使用的是'ajax':你用一个URL调用(在JavaScript中),它将返回带有更新值的处理过的html代码。 – maxdec

+0

我看到..说我改变计数器部分为AJAX,我将如何重新加载JavaScript的div? – Bolli

回答

1

这应该工作:

function render(){ 
    $('.customer-database').parent().load('myscript.php .customer-database'); 
    ^       ^^ ^  ^^    ^^ 
    | select the container in | |  | url | | select content | | 
    | which to reload content | |  | to your | | to put in the | | 
    |______________________________| |  | page | | container | | 
            |  |__________| |________________| | 
            | send ajax call and replace content | 
            |_____________________________________| 
} 
1

如果您知道要替换的内容区域的名称/ ID是插入jquery ajax请求以仅重新加载页面的一部分非常简单。假设你已经有包括你可以使用这个JavaScript块

path = "/path/to/my/action/" 
$.ajax({ 
    url : path, 
    success : function(response) { 
     $('.customer-database').replaceWith(response); 
    }, 
    error : function(xhr) { 
     alert('Error! Status = ' + xhr.status); 
    } 
}); 

,那么你可以写一个动作,基本上只给了你你的计数,并采取行动重新加载到你的元素的jQuery库 - 动作与任何计数响应+ HTML中你喜欢

0

正如其他人所描述的,你要使用AJAX。而jQuery非常擅长这一点。有了jQuery,它就像

//whatever you do to change the $show value as a trigger, maybe a click? 
$(".show_value_button").click(function(){ 
    $("#header_div_id").load("header.php"); 
});