0

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

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

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

这是我的循环:

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

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

4

3 回答 3

0

也许像这样

echo "<script type='text/javascript'>$('#div_id').find('h5').html(".$numberofproducts.");</script>";
于 2012-09-04T17:19:47.283 回答
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

    }

?>
于 2012-09-04T17:21:17.833 回答
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 中的数字。

于 2013-04-10T19:24:42.203 回答