0

我有一个具有这种结构的 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>

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

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

4

4 回答 4

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  |
                                     |_____________________________________|
}
于 2012-10-01T12:55:46.193 回答
1

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

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

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

于 2012-10-01T12:54:44.450 回答
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/以获得帮助。

于 2012-10-01T12:52:33.080 回答
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");
});
于 2012-10-01T13:02:05.497 回答