根据选择框结果执行功能

时间:2012-04-25 12:09:49

标签: php html forms

我有一个正常的选择框,如下所示,在一个单独的类中我有许多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()。我希望当例如选择周并且单击提交时将执行周函数时,是否有一种简单的方法可以执行此操作?最好是在同一页面上,但在另一页上也没问题。

3 个答案:

答案 0 :(得分:2)

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

if ( $_POST['select'] == 'year' ){ year(); }
else if ( $_POST['select'] == 'month' ){ month(); }
...

答案 1 :(得分: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

答案 2 :(得分:1)

最简单的形式:

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

或(更好),

call_user_func($_POST['select_name']);

注意:

  • 您没有为您的选择添加名称,这是传递给PHP的必需名称。
  • 你应该验证用户输入,以确保他们没有输入邪恶的东西。