只在 Joomla 模块的 FOR 循环中显示最后一个结果

Posted

技术标签:

【中文标题】只在 Joomla 模块的 FOR 循环中显示最后一个结果【英文标题】:just show last result in FOR loop of Joomla module 【发布时间】:2012-08-15 06:48:17 【问题描述】:

这是我在 Joomla 2.5 模块的 tmpl/defult.php 中的代码:

$result = count($payed);
for($i=0;$i<$result;$i++)

   $pay=F.$payed[$i];
   echo "<td>".JText::_("$pay")."</td>";
   echo "<td>".number_format($item->$pay)."</td>";
   $paytotal=$pay+$paytotal;  // For last result
   echo "</tr>";

$payed 是一个Array。我从用户那里得到它并通过这个代码爆炸:

$p = $params->get('pay_fields');
$payed = explode ("\n", $p);

在这个模块的语言文件中,我使用了模块参数的通用名称,如下所示:

F1="pay1"
F2="Pay2"
F5="Pay3"
F6="Pay4"

我在数据库中的表有这样的列名:

F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F....
---------------------------------------------------
12  | 1247 | 1056 | 2368 | 2256 | 12510| ...

我想从所有用户输入的数据库文件中创建一个表。 例如当用户输入模块参数时

1
2
5
6

脚本必须从数据库中读取 F1,F2,F5 和 F6 并生成表。 我知道脚本会这样做,但不完全正确! 它只是显示最后的结果!其他参数设置为0! 怎么了?

Know Module 在前端显示此结果:

--------------------------------
F1     |          0
--------------------------------
F2     |          0
--------------------------------
F5     |          0
--------------------------------
Pay4   |       12,510

【问题讨论】:

这并不能解释您的问题,但您应该使用'F' . 而不是F . - 您需要的是字符串'F',而不是常量F 的值。为了向后兼容,PHP 会猜你的意思,但依赖它是不好的做法。 我试过了,但答案没有改变。 你能给我一个线索吗? F是什么? F 是我的数据库表列的前缀。F1 第一列的名称,F2 第二列,F3 第三列,... 【参考方案1】:

问题以一种有趣的方式解决了!

我只是将分隔符从 " \n " 更改为 " ; " 并输入带有新符号的数字!

但我还是不明白问题出在哪里!

但是,现在它工作正常:D。

【讨论】:

以上是关于只在 Joomla 模块的 FOR 循环中显示最后一个结果的主要内容,如果未能解决你的问题,请参考以下文章

仅在菜单项上显示模块,但不在 Joomla 中的项目(文章)页面上显示模块

需要Joomla指南

for 循环是不是只在 python 类中运行一次?

Joomla 2.5 在模块中显示联系人

仅在特定文章中显示 Joomla 模块?

如何在组件中显示 Joomla 模块?