将页面底部生成的数据放在顶部

时间:2014-05-02 00:37:16

标签: javascript php

我有一个页面中间有一些foreach循环的页面。在这些foreach中,我在foreachloop的末尾做了一些变量的总和,这个$ var有数据。

现在我想在foreach之前在我的页面顶部显示这些数据,这意味着如果我转储var它是假的还是没有设置...

现在我想知道解决这个问题的最佳方法是什么?

我也可以在顶部做两次相同的foreach来获取数据,但这些问题的最佳做法是什么?

举一个例子

$sum = false;
echo "<center>Sum: {$sum}</center>";

$sum = 0
foreach ($a as $b) {
$sum += $b
}

我理解var是假的,因为循环没有发生,但是对于设计,我想先展示一下..所以我该怎么做,javascrip?

1 个答案:

答案 0 :(得分:0)

一种流行的方法是在开始处理实际输出之前操纵变量。要使用您的示例,是的,您可能会在处理数据时运行foreach,然后再次运行以显示它。

对于您的具体示例,它可能不是一个明显的好处,但是一旦您开始处理包含更多数据的较大页面,分割逻辑和显示就会变得更加简单。

处理数据

<?php

$sum = 0;
foreach ($a as $b) {
  $sum += $b;
}

?>

显示

<center>Total record(s): <?=$sum?></center>

<?php foreach($a as $b) { ?>

<p>Value: <?=$b?></p>

<?php } ?>

注意:<?=$var?>的简写语法表示<?php echo $var; ?>,默认情况下仅从PHP 5.4开始。

编辑以显示替代

如果您真的只想循环一次,并且很乐意混合您的逻辑和显示,那么您可以在计算总和时构建通常位于循环内部的HTML输出。

<?php

$valuesHtml = "";
$sum = 0;
foreach ($a as $b) {
  $sum += $b;
  $valuesHtml .= "<p>Value: {$b}</p>";
}

?>

<center>Total record(s): <?=$sum?></center>

<?=$valuesHtml?>