使用来自同一页面的数据刷新DIV

时间:2012-09-04 17:08:29

标签: php ajax variables html refresh

基本上我有一个foreach循环从数据库中的一系列产品中引入数据,其中包括价格等。数据首先通过简单的mySQL SELECT查询下拉。然后将其存储在关联数组中。

我想计算页面上显示的项目数。我知道如何计算数组中的项目,但我将过滤哪些项目通过网址显示在页面上,并且只想计算实际显示的数量。

我有想法在每次foreach循环运行时只有一个变量和+ 1,但问题是我需要在循环运行之前回显该数字。

这是我的循环:

    <h2>Title</h2><h5><? echo $numberofproducts; ?> products</h5>
    <? 
    $numberofproducts == 0;
    foreach(get_products() as $product){
    $numberofproducts++; 
    // display product info
    ?>

有没有办法在循环通过AJAX运行后更新h5标签?不需要另一个包含一行的php文件吗?

3 个答案:

答案 0 :(得分:0)

也许就像这样

echo "<script type='text/javascript'>$('#div_id').find('h5').html(".$numberofproducts.");</script>";

答案 1 :(得分:0)

就这样:

<?php $products = get_products(); ?>

<h2>Title</h2><h5><?php echo count($products); ?> products</h5>
<?php 

    foreach($products as $index => $product){

        //you may use $index as the progressive loop counter

    }

?>

答案 2 :(得分:0)

您也可以只运行两次循环:

<h2>Title</h2>
<?php
  $numberofproducts = 0;
  $products = get_products();
  foreach($products as $product){
    ++$numberofproducts; 
  }
?>
<h5><?php echo $numberofproducts; ?> products</h5>
<?php
  foreach($products as $product){
    // display product info
  }
?>

我认为集合相当小,否则你不会先取出所有这些集合然后在for循环中过滤。

此外,如果您使用javascript动态更改页面内容/列表,则在执行过滤后挂钩列表中的(可见)元素计数,然后更新h5中的数字。