这更像是一个PHP设计问题。基本上,我将有一个带有下拉菜单和提交按钮的表单。我将有无限量的下拉选项;显然,不是无限的,但基本上会有一个带有很多选项的下拉菜单。这些“选项”是我想要运行的单个报告。
因此,用户从下拉菜单中选择,例如“未经批准的文章”,我想将其绑定到我的functions.php文件中的一个函数,该文件为此运行SQL并在表中很好地输出所有内容
我的问题是,如果我的主文档中没有一个巨大的if / else语句,基本上说“如果提交按钮等于”未经批准的文章“,我该如何做到这一点,请执行此操作”等等下拉选项。我需要一些动态的东西,没有一堆if / else语句。
我是否过度思考这个?
答案 0 :(得分:2)
将选项映射到函数,例如......
$reportsToFunctions = array(
'without_approval' => 'withoutApproval',
...
);
然后您可以查找并运行该功能。
答案 1 :(得分:1)
除非您想将所有应用程序包装到可能更有利于此类事情的框架中,否则您可能会发现动态调用该函数更容易。
假设您有名为articlesWithoutApproval()
和articlesWithApproval()
的函数。然后,你可以这样做:
<form action="handler.php" method="post">
<select name="reportName">
...
<option value="articlesWithoutApproval">Articles without approval</option>
<option value="articlesWithApproval">Articles with approval</option>
...
</select>
</form>
然后,在handler.php
中,执行:
<?php
function articlesWithoutApproval(){ ... }
function articlesWithApproval(){ ... }
// clean variables, etc
if( isset( $_POST['submit'] ) && $_POST['submit'] ) ) {
$func_name = $_POST['reportName']; // equal to "articlesWithoutApproval"
echo $func_name(); // call the function dynamically
// above evaluates to `echo articlesWithoutApproval();` etc
}
?>