【发布时间】:2014-01-05 09:13:36
【问题描述】:
我正在构建一个应用程序来跟踪有关我们处理的客户的某些信息,例如姓名/日期/工作时间/电话号码等。这些信息存储在数据库中。因为我们有不同的部门,如 SEO/WEB/销售等,以及这些团队中的不同人员,该应用程序提供了不同的方式来过滤信息,具体取决于按下的过滤器按钮。
当有人按下“过滤器按钮”时,在本例中,假设他们按下了“按部门查看”按钮,它会将他们带到实际的硬编码页面。 举个例子:
viewSeoAccs.php
viewWebAccs.php
ViewSalesAccs.php
在这些页面中,我有查询根据按下的过滤器提取信息,但 html 是相同的。现在问题来了。
我有许多不同的页面(基于过滤器),每次对 html 进行编辑时,我都必须进入每个 PHP 页面来实施更改。
我想做的是创建一个为我吐出 html 的函数。我已经完成了大约一半,我知道问题所在,但似乎找不到解决方案。
这是一些代码。
在我的functions.php 文件中,我有一个名为“htmlBlockTEST”的函数,其中包含此代码。
EXAMPLE: (code chopped for easy reading)
<?php
function htmlBlockTEST(){
echo '' ?>
<h2 class="accName fl"><?php echo $row['company_name']; ?></h2>
<div class="<?php echo $row['acc_risk']; ?>"> Risk Level. </div>
//ALOT MORE CODE goes here lol.
<?php
}
?>
这是在标题中并通过“include_once('functions.php') 购买的。 在此之下,我有特定的变量可以提取查询的数据。 (下例)
$pullAllAccounts = "SELECT * FROM tlm_accounts ORDER BY company_name ASC;";
$pullAllAccountsDoIt = mysqli_query($c2d, $pullAllAccounts) or die ("could not pull WEB team data" . mysqli_error($c2d));
?>
现在我遍历数据库并显示如下信息:
<?php
while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
$compName = $row['company_name'];
?>
<?php htmlBlockTEST(); ?>
<?php
}
?>
在上面的这段代码中,函数调用“htmlBlockTEST”所在的位置就是问题所在。由于保存查询的变量在函数之外,我假设它们没有被传递到函数中。我不想将它们放在函数中,因为 HTML 在所有页面中都是相同的,但不是所有数据。
我需要包含 $row['company_name'] 的变量在函数内部也可用,这样它就不会引发“未定义变量”错误。
我怎样才能做到这一点?让while循环(或其他)中的这些变量在函数内部可用的最佳方法是什么?
PS,我在谷歌上找到了诸如 $GLOBALS['x'] 之类的东西,但从我读到的内容来看,这不是最好的方法或更容易,而且我对如何使用它感到困惑。
非常感谢任何帮助。 提前致谢。
【问题讨论】:
-
作为参数可能吗? htmlBlockTEST($compName);
-
是的,我也试过了,但没用。
-
正如 Reza 所说,htmlBlockTEST() 也需要在 while 循环中:) 其他选项在反应式编程领域;)