PHP:jQuery $(this)的类似功能?

时间:2014-08-14 13:46:35

标签: php if-statement query-string isset

我有一个页面,我可以通过查询字符串从一个到三个变量传递。

有三种情况:

  • products.php?页= X
  • products.php性别= X&安培;页= X
  • products.php性别= X&安培; FILTER = X&安培;页= X

变量pagegender总是这样命名,但FILTER变量可以是三个不同的东西:brandcategory和{{ 1}}。

因为subcategory变量是可选的,所以我不能使用gender来获取其名称和值,因为它并不总是第二个变量。

根据所选的$_SERVER['QUERY_STRING']我做了不同的事情,每个过滤器都附加了不同的功能。

我的问题是:如何在排除FILTERpage之后知道选择了哪三种过滤器,所以基本上如果可以这样做

gender

另一种方法是为三种情况中的每一种创建if ( isset($_GET['brand']) || isset($_GET['category']) || isset($_GET['subcategory']) ) { // $selected = whichever variable is set, something like $(this) in jQuery } 语句,但如果我要添加更多过滤器,那么我将不得不添加更多if()语句。

1 个答案:

答案 0 :(得分:1)

1)你可以像你说的那样使用if语句。

2)你可以做类似

的事情 ?

products.php性别= X&安培;过滤器= X + C&安培;页= X

$filter = explode('+', $_GET['filter']));
$type = $filter[0] //x
$value = $filter[1] //c

然后你可以使用开关来获得更多的可读性

switch($type){
    case 'brand':
        //do stuff
        break;
    default:
        //do stuff
}