PHP:多个下拉选项绑定到多个功能

时间:2011-04-13 03:55:25

标签: php forms function drop-down-menu

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

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

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

我是否过度思考这个?

2 个答案:

答案 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
}
?>