testing seach filter changes by category
authorAnthony Talarico <talarico@gaslightmedia.com>
Fri, 28 Apr 2017 20:47:56 +0000 (16:47 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Fri, 28 Apr 2017 20:47:56 +0000 (16:47 -0400)
adding sql queries to filter all of the header search widget category options. modifiying the
search filter in the functions file that checks for the category parent for testing

functions.php
js/app.js
js/custom/headerSearch.js
lib/ajax-search.php

index e78962e..f98bcac 100644 (file)
@@ -29,8 +29,8 @@ add_filter('glm-member-db-front-search-query', function( $queryParts ) {
                     SELECT DISTINCT(member_info)
                       FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info M,
                            ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories C
-                     WHERE M.category in($catSelectedForQuery)
-                        OR (C.parent in($catSelectedForQuery) AND M.category = C.id)
+                     WHERE M.category in ($catSelectedForQuery) 
+    
             ) ";
     }
      if ( isset( $_REQUEST['cities'] ) && is_array( $_REQUEST['cities'] ) && !empty( $_REQUEST['cities'] ) && $_REQUEST['cities'][0] !== '' ) {
index b120116..65e9171 100644 (file)
--- a/js/app.js
+++ b/js/app.js
@@ -118,15 +118,16 @@ $(document).ready(function () {
             data: {
                 action: "trailmaps",
                 activity: activity,
+                others: {'destination' : $('#destination-search option:selected').val(), 'park' : $('#park-search option:selected').val()}
 
             },
             success:function(data){
                var activity_data = data;
-                
+                console.log(data.test);
                 option = {};
                 $('#destination-search option').not(':eq(0), :selected').remove();
                 var selected = $('#destination-search option:selected').val();
-                console.info(selected);
+                console.info(data);
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(activity_data.categories.Destinations,function(index,value){
                     if(value.category !== selected){
@@ -148,52 +149,6 @@ $(document).ready(function () {
                         parks.append(option);
                     }
                 });
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////                counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
-
-
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.cities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
-
-//                if( $('#park-search option:selected').val() === ''){
-//                   
-//                    option = {};
-//                    parks.empty();
-//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
-//                    $.each(activity_data.categories.Parks, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        parks.append(option);
-//                    });
-//                }
-//                if( $('#destination-search option:selected').val() === ''){
-//                    option = {};
-//                    destinations.empty();
-//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-//                    $.each(activity_data.categories.Destinations, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        destinations.append(option);
-//                    });
-//                }
-
             }
         });
     });
@@ -211,11 +166,11 @@ $(document).ready(function () {
             data: {
                 action: "trailmaps",
                 park: park,
-
+                others: {'destination' : $('#destination-search option:selected').val(), 'activity' : $('#activity-search option:selected').val()}
             },
             success:function(data){
                var park_data = data;
-                
+                console.log(data.test);
                 option = {};
                 $('#destination-search option').not(':eq(0), :selected').remove();
                 var selected = $('#destination-search option:selected').val();
@@ -242,38 +197,6 @@ $(document).ready(function () {
                     }
                 });
 
-
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.cities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
-//                if( $('#destination-search option:selected').val() === ''){
-//                    console.log( $('#destination-search option:selected').val() );
-//                    option = {};
-//                    destinations.empty();
-//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-//                    $.each(park_data.categories.Destinations, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        destinations.append(option);
-//                    });
-//                }
-//                if( $('#activity-search option:selected').val() === ''){
-//                    option = {};
-//                    activities.empty();
-//                    activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-//                    $.each(park_data.categories.Activities, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        activities.append(option);
-//                    });
-//                }
             }
         });
     });
@@ -289,41 +212,17 @@ $(document).ready(function () {
             url: ajaxurl,
             data: {
                 action: "trailmaps",
-                destination: destination
+                destination: destination,
+                others: {'activity' : $('#activity-search option:selected').val(), 'park' : $('#park-search option:selected').val()}
             },
             success:function(data){
                var destination_data = data;
 
-                
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////                counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(destination_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
-
+                console.log(data.test);
 
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(destination_data.categories.Activities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
                 option = {};
                 $('#activity-search option').not(':eq(0), :selected').remove();
                 var selected = $('#activity-search option:selected').val();
-                console.info(selected);
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(destination_data.categories.Activities,function(index,value){
                     if(value.category !== selected){
@@ -335,7 +234,7 @@ $(document).ready(function () {
                 option = {};
                 $('#park-search option').not(':eq(0), :selected').remove();
                 var selected = $('#park-search option:selected').val();
-                console.info(selected);
+     
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(destination_data.categories.Parks,function(index,value){
                     if(value.category !== selected){
@@ -345,26 +244,6 @@ $(document).ready(function () {
                     }
                 });
 
-
-//                option = {};
-//                activities.empty();
-//                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-//                $.each(destination_data.categories.Activities, function(index, value) {
-//                    console.log(value);
-//                    var option = $('<option>', {value: value.category, text: value.name});
-//                    activities.append(option);
-//                });
-                
-//                if( $('#park-search option:selected').val() === ''){
-//                    option = {};
-//                    parks.empty();
-//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
-//                    $.each(destination_data.categories.Parks, function(index, value) {
-//                        console.log(value);
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        parks.append(option);
-//                    });
-//                }
             }
         });
     });
index a806db9..30b0194 100644 (file)
@@ -109,15 +109,16 @@ $(document).ready(function () {
             data: {
                 action: "trailmaps",
                 activity: activity,
+                others: {'destination' : $('#destination-search option:selected').val(), 'park' : $('#park-search option:selected').val()}
 
             },
             success:function(data){
                var activity_data = data;
-                
+                console.log(data.test);
                 option = {};
                 $('#destination-search option').not(':eq(0), :selected').remove();
                 var selected = $('#destination-search option:selected').val();
-                console.info(selected);
+                console.info(data);
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(activity_data.categories.Destinations,function(index,value){
                     if(value.category !== selected){
@@ -139,52 +140,6 @@ $(document).ready(function () {
                         parks.append(option);
                     }
                 });
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////                counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
-
-
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.cities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
-
-//                if( $('#park-search option:selected').val() === ''){
-//                   
-//                    option = {};
-//                    parks.empty();
-//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
-//                    $.each(activity_data.categories.Parks, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        parks.append(option);
-//                    });
-//                }
-//                if( $('#destination-search option:selected').val() === ''){
-//                    option = {};
-//                    destinations.empty();
-//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-//                    $.each(activity_data.categories.Destinations, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        destinations.append(option);
-//                    });
-//                }
-
             }
         });
     });
@@ -202,11 +157,11 @@ $(document).ready(function () {
             data: {
                 action: "trailmaps",
                 park: park,
-
+                others: {'destination' : $('#destination-search option:selected').val(), 'activity' : $('#activity-search option:selected').val()}
             },
             success:function(data){
                var park_data = data;
-                
+                console.log(data.test);
                 option = {};
                 $('#destination-search option').not(':eq(0), :selected').remove();
                 var selected = $('#destination-search option:selected').val();
@@ -233,38 +188,6 @@ $(document).ready(function () {
                     }
                 });
 
-
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.cities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
-//                if( $('#destination-search option:selected').val() === ''){
-//                    console.log( $('#destination-search option:selected').val() );
-//                    option = {};
-//                    destinations.empty();
-//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-//                    $.each(park_data.categories.Destinations, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        destinations.append(option);
-//                    });
-//                }
-//                if( $('#activity-search option:selected').val() === ''){
-//                    option = {};
-//                    activities.empty();
-//                    activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-//                    $.each(park_data.categories.Activities, function(index, value) {
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        activities.append(option);
-//                    });
-//                }
             }
         });
     });
@@ -280,41 +203,17 @@ $(document).ready(function () {
             url: ajaxurl,
             data: {
                 action: "trailmaps",
-                destination: destination
+                destination: destination,
+                others: {'activity' : $('#activity-search option:selected').val(), 'park' : $('#park-search option:selected').val()}
             },
             success:function(data){
                var destination_data = data;
 
-                
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////                counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(destination_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
-
+                console.log(data.test);
 
-//                option = {};
-//                $('#trail-cities option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-cities option:selected').val();
-////                cities.append($('<option>', {value: 'default', text: 'City', 'data-taxonomy': 'default'}));
-//                $.each(destination_data.categories.Activities, function(index, value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-taxonomy', value.taxonomy);
-//                        option.attr('data-id', value.id);
-//                        cities.append(option);
-//                    }
-//                });
                 option = {};
                 $('#activity-search option').not(':eq(0), :selected').remove();
                 var selected = $('#activity-search option:selected').val();
-                console.info(selected);
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(destination_data.categories.Activities,function(index,value){
                     if(value.category !== selected){
@@ -326,7 +225,7 @@ $(document).ready(function () {
                 option = {};
                 $('#park-search option').not(':eq(0), :selected').remove();
                 var selected = $('#park-search option:selected').val();
-                console.info(selected);
+     
 //               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
                 $.each(destination_data.categories.Parks,function(index,value){
                     if(value.category !== selected){
@@ -336,26 +235,6 @@ $(document).ready(function () {
                     }
                 });
 
-
-//                option = {};
-//                activities.empty();
-//                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-//                $.each(destination_data.categories.Activities, function(index, value) {
-//                    console.log(value);
-//                    var option = $('<option>', {value: value.category, text: value.name});
-//                    activities.append(option);
-//                });
-                
-//                if( $('#park-search option:selected').val() === ''){
-//                    option = {};
-//                    parks.empty();
-//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
-//                    $.each(destination_data.categories.Parks, function(index, value) {
-//                        console.log(value);
-//                        var option = $('<option>', {value: value.category, text: value.name});
-//                        parks.append(option);
-//                    });
-//                }
             }
         });
     });
index a3cab30..530a923 100644 (file)
@@ -166,20 +166,42 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
         
          if( isset($_REQUEST['activity'] ) ){
 
-            $activity_id = isset($_REQUEST['activity'] )? filter_var($_REQUEST['activity'],FILTER_SANITIZE_STRING) : '';
-
+            $activity_id = isset($_REQUEST['activity'] ) ? filter_var($_REQUEST['activity'],FILTER_SANITIZE_STRING) : '';
+             
+            $destination_id = $_REQUEST['others']['destination'] !== '' ? filter_var($_REQUEST['others']['destination'],FILTER_SANITIZE_STRING) : '';
+             
+            $park_id = $_REQUEST['others']['park'] !== '' ? filter_var($_REQUEST['others']['park'],FILTER_SANITIZE_STRING) : '';
+           
             if($activity_id !== 'false'){
-                $where = "
-                SELECT CM.category, CAT.name, CAT.parent
-                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+                 $sql = " SELECT CM.category, CAT.name, CAT.parent
+                     FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
-                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
-                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id)
-                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $activity_id 
-                 GROUP BY CM.category
-            "; 
+                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT";
+             
+                $where = " WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id)
+                       AND MI.status = 10 AND CM.category = CAT.id";
+                
+                if($destination_id !== ''){
+                    $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $destination_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+                if($park_id !== ''){
+                     $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $park_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+             
+                $group_by = ' GROUP BY CM.category';
+                
+                $query = $sql . $where . $group_by;
+//                $where = "
+//                SELECT CM.category, CAT.name, CAT.parent
+//                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
+//                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id)
+//                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $activity_id 
+//                 $group
+//            ";
             }else {
-                $where = "
+                $query = "
                 SELECT CM.category, CAT.name, CAT.parent
                   FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
@@ -188,9 +210,8 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
                  GROUP BY CM.category
             "; 
             }
-
-
-            $results = $wpdb->get_results($where, ARRAY_A);
+            
+            $results = $wpdb->get_results($query, ARRAY_A);
              foreach($results as $key=>$value){
                  $parent = $value['parent'];
                  $sql = "SELECT name FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories WHERE id = $parent;";
@@ -199,26 +220,47 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
              }
 
             $trail_data = array(
-                'categories' => $categories
+                'categories' => $categories,
+                'test'      => $query
             );
 
         // on city dropdown change //////////////////////////////////////////
         } else if( isset($_REQUEST['park']) ){
 
             $park_id = isset($_REQUEST['park'] )? filter_var($_REQUEST['park'],FILTER_SANITIZE_STRING) : '';
-
+             
+            $destination_id = $_REQUEST['others']['destination'] !== '' ? filter_var($_REQUEST['others']['destination'],FILTER_SANITIZE_STRING) : '';
+            $activity_id = $_REQUEST['others']['activity'] !== '' ? filter_var($_REQUEST['others']['activity'],FILTER_SANITIZE_STRING) : '';
+           
             if($park_id !== 'false'){
-                $where = "
-                SELECT CM.category, CAT.name, CAT.parent
-                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+                $sql = " SELECT CM.category, CAT.name, CAT.parent
+                     FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
-                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
-                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $park_id)
-                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $park_id 
-                 GROUP BY CM.category
-            "; 
+                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT";
+             
+                $where = " WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $park_id)
+                       AND MI.status = 10 AND CM.category = CAT.id";
+                
+                if($destination_id !== ''){
+                    $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $destination_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+                if($activity_id !== ''){
+                     $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+                $group_by = ' GROUP BY CM.category';
+                
+                $query = $sql . $where . $group_by;
+//                $where = "
+//                SELECT CM.category, CAT.name, CAT.parent
+//                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
+//                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id)
+//                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $activity_id 
+//                 $group
+//            ";
             }else {
-                $where = "
+                $query = "
                 SELECT CM.category, CAT.name, CAT.parent
                   FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
@@ -229,7 +271,7 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
             }
 
 
-            $results = $wpdb->get_results($where, ARRAY_A);
+            $results = $wpdb->get_results($query, ARRAY_A);
              foreach($results as $key=>$value){
                  $parent = $value['parent'];
                  $sql = "SELECT name FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories WHERE id = $parent;";
@@ -238,25 +280,44 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
              }
 
             $trail_data = array(
-                'categories' => $categories
+                'categories' => $categories,
+                'test'  => $query
             );
         }else if( isset($_REQUEST['destination']) ){
 
             $destination_id = isset($_REQUEST['destination'] )? filter_var($_REQUEST['destination'],FILTER_SANITIZE_STRING) : '';
              
+            $activity_id = $_REQUEST['others']['activity'] !== '' ? filter_var($_REQUEST['others']['activity'],FILTER_SANITIZE_STRING) : '';
+            $park_id = $_REQUEST['others']['park'] !== '' ? filter_var($_REQUEST['others']['park'],FILTER_SANITIZE_STRING) : '';
+           
             if($destination_id !== 'false'){
-
-                $where = "
-                SELECT CM.category, CAT.name, CAT.parent
-                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+                 $sql = " SELECT CM.category, CAT.name, CAT.parent
+                     FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
-                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
-                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $destination_id)
-                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $destination_id 
-                 GROUP BY CM.category
-            "; 
+                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT";
+             
+                $where = " WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $destination_id) AND MI.status = 10 AND CM.category = CAT.id";
+                
+                if($activity_id !== ''){
+                    $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+                if($park_id !== ''){
+                     $where .= " AND CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $park_id) AND MI.status = 10 AND CM.category = CAT.id";
+                }
+                $group_by = ' GROUP BY CM.category';
+                
+                $query = $sql . $where . $group_by;
+//                $where = "
+//                SELECT CM.category, CAT.name, CAT.parent
+//                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
+//                       ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories CAT
+//                 WHERE CM.member_info IN (SELECT member_info FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info WHERE category = $activity_id)
+//                 AND MI.status = 10 AND CM.category = CAT.id AND NOT CM.category = $activity_id 
+//                 $group
+//            ";
             }else {
-                $where = "
+                $query = "
                  SELECT CM.category, CAT.name, CAT.parent
                   FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info MI,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info CM,
@@ -266,7 +327,7 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
             "; 
             }
 
-            $results = $wpdb->get_results($where, ARRAY_A);
+            $results = $wpdb->get_results($query, ARRAY_A);
              foreach($results as $key=>$value){
                  $parent = $value['parent'];
                  $sql = "SELECT name FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories WHERE id = $parent;";
@@ -275,7 +336,8 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
              }
 
             $trail_data = array(
-                'categories' => $categories
+                'categories' => $categories,
+                'test'  => $query
             );
         }