0

一个 url 参数有一点问题。

我有一个使用方法 GET 的表单,因为我只是检索一些数据来获取结果列表。这些数据对任何人都不是秘密。简而言之,我可以在表格中输入屋顶上的一些测量值,这些数字将用于计算我必须购买的屋顶瓦片等。在表格中,我还可以输入要计算的额外屋顶瓦片的百分比,即额外 3%。结束输入并按下计算后,我将得到一个如下所示的 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);
}
4

1 回答 1

0

无需做所有这些,只需将您拥有的值粘贴回表单中,让浏览器为您重新创建查询字符串。

于 2012-08-06T06:56:11.460 回答