我正在建立一个应用程序来跟踪我们处理的客户的某些信息,如名称/日期/小时工作/电话号码等。此信息存储在数据库中。因为我们有不同的部门,如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,我已经google并发现了诸如$ GLOBALS ['x']之类的东西,但是从我读过的内容来看,它并不是最好的方式或更简单的方式,总体而言我甚至对如何使用它感到困惑。
非常感谢任何帮助。 谢谢你提前。
答案 0 :(得分:2)
选项1:
while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
htmlBlockTEST($row);
}
选项2:
global $row;
while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
$compName = $row['company_name'];
htmlBlockTEST();
}
//and in your htmlBlockTEST() function just right this:
function htmlBlockTEST(){
global $row; ?>
<h2 class="accName fl"><?php echo $row['company_name']; ?></h2>
<div class="<?php echo $row['acc_risk']; ?>"> Risk Level. </div>
<?php
//ALOT MORE CODE goes here lol.
}
?>
当然,你还有更多选择。