【发布时间】:2012-08-06 06:52:15
【问题描述】:
一个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);
}
【问题讨论】:
-
我不确定如何在我的示例中使用 addUrlParameter
-
用那个替换你的代码。传递要修改的 URL、URL 变量名称及其新值。
-
我可以动态执行吗?我不知道要更改哪些参数,因为它取决于用户在表单中要更改的内容。他可能会选择在任何给定字段中只输入一个新号码。
-
你可能认为我完全愚蠢,但你能举个例子吗? :) 我已经看了这么多,以至于我完全找不到解决方案。
标签: php forms parameters str-replace