Jeg har fået løst det med ren php. Jeg skal ikke kunne sige om dette er den mest optimale løsning - men den virker.
Til interesserede:
- <?php
- function curPageURL() {
- $pageURL = 'http';
- if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
- $pageURL .= "://";
- if ($_SERVER["SERVER_PORT"] != "80") {
- $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
- } else {
- $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
- }
- return $pageURL;
- }
- if(!function_exists("add_var_to_url")){
- function add_var_to_url($variable_name,$variable_value,$url_string){
- if(strpos($url_string,"?")){
- $start_pos = strpos($url_string,"?");
- $url_vars_strings = substr($url_string,$start_pos+1);
- $names_and_values = explode("&",$url_vars_strings);
- $url_string = substr($url_string,0,$start_pos);
- foreach($names_and_values as $value){
- list($var_name,$var_value)=explode("=",$value);
- if($var_name != $variable_name){
- if(strpos($url_string,"?")===false){
- $url_string.= "?";
- } else {
- $url_string.= "&";
- }
- $url_string.= $var_name."=".$var_value;
- }
- }
- }
- if(strpos($url_string,"?")===false){
- $url_string .= "?".$variable_name."=".$variable_value;
- } else {
- $url_string .= "&".$variable_name."=".$variable_value;
- }
- return $url_string;
- }
- }
-
- $url = curPageURL();
- ?>
- <a href="<?php echo add_var_to_url("cat_id",1,$url); ?>">kategori 1</a>
- <a href="<?php echo add_var_to_url("cat_id",2,$url); ?>">kategori 2</a>
- <a href="<?php echo add_var_to_url("cat_id",3,$url); ?>">kategori 3</a>
Koden tilføjer f.eks. ?cat_id=2 til URL'en, og cat_id kan derved hentes gennem $_GET['cat_id'];
Såfremt at URL'en allerede indeholder ?cat_id=3, så vil den ved udførelse af funktionen ændre det til ?cat_id=2.