基本上我有一个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文件吗?
答案 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中的数字。