php - Add additional queries to url by link -


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