GET form bruger gammel parameter ved ny indtastning
Hej eksperter,Jeg har et lille problem der er tæt på at drive mig ud i vanvid.
Jeg har en side hvor man kan indtaste at man ønsker X antal af nogle forskellige produkter. Så klikker man næste og indtastningen ryger så via formen ud som GET parametre og man bliver sendt videre til en anden side hvor man så kan indtaste mål. Mit problem er så at hvis man f.eks. trykker "forrige trin" og i en eller flere felter, ændrer antallet fra f.eks. 7 til 4 og "sender" formularen igen, så ryger der en ekstra parameter i adresse linjen, i stedet for at opdatere parameteren.
Jeg har f.eks. et felt der hedder "udluftninger".
Den kommer så første gang i URLen med &udluftninger=7
og når jeg så ændrer tallet så kommer der i starten af URLen &udluftninger=4, men &udluftninger=7 er stadig i URLen
Jeg har google mig frem til funktionen addURLParameter:
---
function addURLParameter($url, $paramName, $paramValue) {
$url_data = parse_url($url);
if(!isset($url_data["query"]))
$url_data["query"]="";
$params = array();
parse_str($url_data['query'], $params);
$params[$paramName] = $paramValue;
$url_data['query'] = http_build_query($params);
return build_url($url_data);
}
function build_url($url_data) {
$url="";
if(isset($url_data['host'])) {
$url .= $url_data['scheme'] . '://';
if (isset($url_data['user'])) {
$url .= $url_data['user'];
if (isset($url_data['pass'])) {
$url .= ':' . $url_data['pass'];
}
$url .= '@';
}
$url .= $url_data['host'];
if (isset($url_data['port'])) {
$url .= ':' . $url_data['port'];
}
}
$url .= $url_data['path'];
if (isset($url_data['query'])) {
$url .= '?' . $url_data['query'];
}
if (isset($url_data['fragment'])) {
$url .= '#' . $url_data['fragment'];
}
return $url;
}
---
Den forsøger jeg at bruge sådan:
foreach($_GET as $key => $value) { addURLParameter("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", $key, $value);
}
Men det hjælper ikke en dyt. Den fjerner automatisk den nye &udluftninger=4 og benytter dermed stadig &udluftninger=7 som er den gamle værdi.
En var_dump af $url_data giver mig:
array(4) { ["scheme"]=> string(4) "http" ["host"]=> string(22) "www.domæne.dk" ["path"]=> string(19) "/ny/formhandler.php" ["query"]=> string(314) "vent_45=&udluftninger=4&udluftning_fald=&udluftning_ventitegl=&tagfod=fuglegitter&chimney_afstand_tagrende=&udluftninger=7&tagfod=fuglegitter&afslutning_sten=dv&topsten=utop&angle_1=45&mainhouse=1&house=1&rooftype=mu&lang=dk&rooftiletype=1&rid=1&producent=h&newpage=inputdims&next=N%C3%A6ste+trin+%C2%BB" }
Er der en der kan se / ved hvad jeg gør fuldstændig galt!