URL パラメータに少し問題があります。
結果リストを取得するために一部のデータのみを取得しているため、メソッド GET を使用するフォームがあります。データは決して誰にも秘密ではありません。要するに、フォームに屋根の測定値を入力することができ、それらの数値を使用して、購入する必要がある屋根瓦の数などを計算します。フォームでは、計算する余分な屋根瓦の割合 (fx 3% extra) を入力することもできます。入力を終了して計算を押すと、次のような URL が表示されます。
index.php?page=matliste&width=8&length=12&angle-1=45&extra=3&zip=9000&tagfod=tagfod&finish_stone=dv&topsten=utop&angle=45&mainhouse=1&house=1&rooftype=uu&lang=dk&rooftiletype=1&rid=1&producent=h
これで私は3%余分に持っています。しかし、フォームに戻って fx 5% を入力しても更新されません。新しいパラメーターを挿入するだけなので、次のようになります。
extra=5&extra=3
既存のパラメータを削除して、新しい番号で新しいパラメータを挿入するにはどうすればよいですか?
これを使用して、フォーム フィールドからクエリを作成しています。
if($_GET["newpage"] == "matliste") {
$get_elements = array_filter($_GET, "strlen");
$url = http_build_query($get_elements);
$search_pattern = array();
$search_pattern[0] = "/([?&]newpage)=[^&]*/";
$search_pattern[1] = "/([?&]next)=[^&]*/";
$search_pattern[2] = "/angle_\d+/";
$search_replacements = array();
$search_replacements[0] = '';
$search_replacements[1] = '';
$search_replacements[2] = 'angle';
$new_url = preg_replace($search_pattern, $search_replacements, $url);
header("Location: index.php?page=". $_GET["newpage"] ."&".$new_url);
}