2012-08-06 49 views
0

一个url参数有一点问题。从form方法中取代url参数获取

我有一个使用方法GET的表单,因为我只是检索一些数据来获得结果列表。数据对任何人都不是秘密。 总之,我可以在窗体上输入一些屋顶上的测量数据,这些数字将用来计算我需要购买多少屋顶等。在表格中,我也可以输入一个要计算的额外网格的百分比,f.x.额外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%的额外。但是当我回到表单并输入f.x. 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); 
} 
+0

duplicate http://stackoverflow.com/questions/4100538/php-add-update-a-parameter-in-a-url/4101638#4101638 – 2012-08-06 06:59:02

+0

我不知道如何使用addUrlParameter与我的例子 – 2012-08-10 11:23:25

+0

用那个替换你的代码。传递要修改的URL,URL变量名称及其新值。 – 2012-08-10 12:20:01

回答

0

而不是做这一切,只是坚持你回到表单中的值,让浏览器重新查询字符串为您。