PHP:多个下拉选项绑定到多个函数

PHP:多个下拉选项绑定到多个函数,php,forms,function,drop-down-menu,Php,Forms,Function,Drop Down Menu,这更像是一个PHP设计问题。基本上,我将有一个带有下拉菜单和提交按钮的表单。我将拥有无限的下拉选项;显然,不是无限的,但基本上会有一个下拉菜单,有很多选项。这些“选项”是我想要运行的单个报告 因此,用户从下拉菜单中选择,例如,“Articles without approval”,我想将其绑定到functions.php文件中的一个函数,该函数为此运行SQL并在表中很好地输出所有内容 我的问题是,如果在我的主文档中没有一个巨大的if/else语句,基本上是说“如果提交按钮等于“未经批准的文章”,

这更像是一个PHP设计问题。基本上,我将有一个带有下拉菜单和提交按钮的表单。我将拥有无限的下拉选项;显然,不是无限的,但基本上会有一个下拉菜单,有很多选项。这些“选项”是我想要运行的单个报告

因此,用户从下拉菜单中选择,例如,“Articles without approval”,我想将其绑定到functions.php文件中的一个函数,该函数为此运行SQL并在表中很好地输出所有内容

我的问题是,如果在我的主文档中没有一个巨大的if/else语句,基本上是说“如果提交按钮等于“未经批准的文章”,那么我如何做到这一点”,等等,对于每个下拉选项。我需要一些动态的东西,没有一堆if/else语句


我想得太多了吗?

有一个选项到函数的映射,比如

$reportsToFunctions = array(
   'without_approval' => 'withoutApproval',
   ...
);

然后,您可以查找并运行该函数。

除非您希望将所有应用程序包装到一个可能更有利于此类操作的框架中,否则您可能会发现动态调用该函数更容易

假设您的函数名为
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>

你能重申一下吗?我从来没有这样做过,所以如果你有一些见解,甚至有一个资源来记录这一点,我将非常感激。它会像
$reportsToFunctions[“未经批准”]
,将通过
if(isset($\u POST['submit'])和&$\u POST['submit']){
调用,就像Ryan发布的一样?你只是将它们存储在一个数组中,对吗?@drewrockshard:)这就是我所想的,非常流畅!我要试一试,看起来非常直截了当,非常容易理解。
<?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
}
?>