0

我有一个正常的选择框,如下所示,在一个单独的类中我有许多 php 函数。我希望能够基于选择框执行功能。

<form action="functions.php" method"post">
<select name="sales">
  <option value="week">Last 7 days</option>
  <option value="month">Last 30 Days</option>
  <option value="year">Last 365 Days</option>
  <option value="all">Complete report</option>
</select>
<input type="submit" value="Submit" />
</form>

然后例如在我的函数类中我有函数function week(), function month(), function year()。我想要选择,选择并单击提交的时间,将执行星期函数,是否有一种简单的方法来执行此操作?最好在同一页面上但在单独的页面上会很好。

4

3 回答 3

2

一个简单的 if/else 语句有什么问题?

if ( $_POST['select'] == 'year' ){ year(); }
else if ( $_POST['select'] == 'month' ){ month(); }
...
于 2012-04-25T12:14:01.923 回答
1

为您的选择添加名称<select name="myvariable" method="POST">

那么您可以使用该名称来调用函数,例如:

echo $_POST['myvariable']();

或使用 call_user_func() 函数,如:

echo call_user_func($_POST['myvariable']);

(在此处阅读有关 call_user_func 的更多信息 - http://lt.php.net/manual/en/function.call-user-func.php

于 2012-04-25T12:11:49.880 回答
1

在最简单的形式上:

$function = $_POST['select_name'];
$function();

或者(更好),

call_user_func($_POST['select_name']);

笔记:

  • 您没有为您的选择添加名称,这是强制传递给 PHP 的。
  • 您可能应该验证用户输入以确保他们没有输入邪恶的内容。
于 2012-04-25T12:12:06.010 回答