单一方式根据过滤器建议显示标题

时间:2014-05-21 17:17:50

标签: php

我有一个带有5个选项的表单来过滤来自mysql的数据(开始日期,结束日期,用户,课程,级别),我想根据选择提供带有自定义文本的标题,就像只有用户一样选择日期,标题会说"数据从开始日期到结束日期),如果用户选择用户,那么将是"用户的数据从开始日期到结束日期,依此类推。 使用if选项1进行所有可能的组合是一个令人头痛的问题!="" &安培;&安培; option2 ==""在这种情况下,我有25种可能的组合,有任何建议轻松处理这个,并认为如果在未来我想添加另一个过滤器,将是30组合,我将不得不重写if。对不起,如果这是一个愚蠢的问题,但我现在不会以另一种方式清楚地看到它。

2 个答案:

答案 0 :(得分:1)

让我们简化:

$output = "";
if($user != ""){
      $output .= "User: " . $user . " ";
}
if($dateFrom != ""){
      $output .= "Start date: " . $dateFrom . " ";
}
if($dateTo != ""){
      $output .= "End date: " . $dateTo . " ";
}

echo $output;

答案 1 :(得分:0)

您可以为用户构建一条消息,例如:

$response = "";

if($user_filter == true)
{
   if($response == "")
   {
        $response = "Data for user: ".$some_user;
   }
   eles
   {
        $response = $response." and from user: ".$some_user;
   }
}

if($date_filter == true)
{
   if($response == "")
   {
        $response = "Data from ".$start_date." to ".$end_date;
   }
   eles
   {
        $response = $response." and from ".$start_date." to ".$end_date;
   }
}

这样你会和每个过滤器只有一个...