“现在我想要么将该参数添加到现有参数列表中,要么编辑该参数(如果它已经存在)”
我会使用parse_str() / parse_url() 函数将 URL 拆分为关联数组,然后您可以使用新值添加/更新数组元素,并将其组合回具有 http_build_url() 的有效 URL。请查看 php 手册中的示例,编写代码比编写它更容易;)
“然后刷新页面”
关于隐藏表单元素的答案还不错,但我想知道用户是否会理解发生了什么(他不会看到他之前的选择被记住的可见确认,但你会以某种方式保存它)。因此,我会走一条不同的路:假设表单是用 php 生成的,而不是静态 HTML,为什么不确保在显示表单时突出显示在第一个表单提交中选择的选项后续提交?
<select name="b">
<option value="1" <?php if(isset($params['b']) && $params['b'] == 1) echo 'selected="selected"'; ?>>1</option>
</select>
它看起来有点乱,但是如果您养成重新显示用户输入的习惯,您可以节省他们的输入(如果由于某些验证,他们必须填写 3 次空表单,他们会讨厌您的页面)。
对于选项标签,正确的属性是“已选择”,对于复选框/单选按钮,它是“选中”,文本输入具有属性“值”,您可以在其中输入您想要的任何内容等。不确定我是否不是在谈论对您来说显而易见的事情...