使用包含PHP内容的JavaScript重新加载div

时间:2012-10-01 12:48:54

标签: php javascript

我有一个具有这种结构的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中的任何建议持开放态度。

4 个答案:

答案 0 :(得分:1)

您可以对单独的PHP文件执行 AJAX请求。单独的PHP文件具有返回代码的代码:

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

使用jQuery创建AJAX调用时,请参阅http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/获取帮助。

答案 1 :(得分:1)

如果您知道要替换的内容区域的名称/ ID是什么,则插入jquery ajax请求以仅重新加载页面的一部分非常简单。假设你已经包含了你的jquery库,你可以使用这个javascript chunk

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

然后你可以编写一个基本上只给你计数的Action,并将该Action重新加载到你的元素中 - 动作以你喜欢的任何计数+ html响应

答案 2 :(得分: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  |
                                     |_____________________________________|
}

答案 3 :(得分: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");
});