i have site uses query strings retrieve data so:
<div id="menu-sort-dropdown" class="search-filter-item"> <p><?php echo $query_sort_title; ?></p> <ul class="dropdown-menu"> <li><a href="/teachings/">newest</a></li> <li><a href="?sort=sort_date_lit_asc">oldest</a></li> <li><a href="?sort=sort_name_asc">alphabetically</a></li> </ul> </div> <div id="menu-category-dropdown" class="search-filter-item"> <p><?php echo $query_category_title; ?></p> <ul class="dropdown-menu"> <li><a href="/teachings/">all</a></li> <li><a href="?category=coaching">coaching</a></li> <li><a href="?category=conversation">conversation</a></li> <li><a href="?category=craft">craft</a></li> <li><a href="?category=creativity">creativity</a></li> </ul> </div>
it works great getting data like:
teachings/?sort=sort_name_asc
or
teachings/?category=creativity
but can both like:
teachings/?category=creativity&sort=sort_name_asc
i can't wrap head around how add that. if append strip become mess.
the following code doesn't 'duplicate' values in url if keep clicking category
or sort
. it's made copy/paste , run.
// check values echo '<pre>'; print_r($_get); echo '</pre>'; echo '<hr>'; function foo($type, $value){ $args = $_get; $args[$type] = $value; // prevent duplication return http_build_query($args); // returns new query string } ?> <a href="?<?php echo foo('sort', 'sort_date_lit_asc'); ?>">sort_date_lit_asc</a> <br> <a href="?<?php echo foo('sort', 'sort_name_asc'); ?>">sort_name_asc</a> <br> <a href="?<?php echo foo('category', 'coaching'); ?>">coaching</a> <br> <a href="?<?php echo foo('category', 'conversation'); ?>">conversation</a>
you can have code remove of those. add right after previous code (also copy/paste). take look:
<?php function bar($type){ $args = $_get; unset($args[$type]); return http_build_query($args); // returns new query string } ?> <hr> <a href="?<?php echo bar('sort'); ?>">remove sort</a> <br> <a href="?<?php echo bar('category'); ?>">remove category</a>
Comments
Post a Comment