Javascript 更新或附加URL参数,而不是替换整个URL

Javascript 更新或附加URL参数,而不是替换整个URL,javascript,php,html,Javascript,Php,Html,我正在尝试建立一个星期日历。当前,日历具有正向和反向链接,通过在末尾附加?date=来构建新的URL。例如: <a href="<?php get_current_url() ?>/?date=2014-07-23">Next week</a> <a href="<?php get_current_url() ?>/?date=2014-07-09">Prev week</a> 我还想在日历中添加一个过滤器,只允许在日

我正在尝试建立一个星期日历。当前,日历具有正向和反向链接,通过在末尾附加
?date=
来构建新的URL。例如:

<a href="<?php get_current_url() ?>/?date=2014-07-23">Next week</a>
<a href="<?php get_current_url() ?>/?date=2014-07-09">Prev week</a>

我还想在日历中添加一个过滤器,只允许在日历上显示某些事件类型。我使用GET方法得出了以下结论:

<form method="GET" action="">
  <select name="type">
    <option selected disabled value=''>Type</option>
    // event option stuff
  </select>
  <input type="submit" value="submit">
</form>

类型
//事件选项内容
提交时,此表单只需重建一个新的URL,并在末尾添加
?type=
。如果URL已经有日期参数,我的表单将忽略它。例如:

变成:

同样,周导航会忽略过滤器

有没有一个简单的方法让过滤器和导航链接一起工作


例如,如果
?date=
已经存在,则
&type=
将附加到URL。如果一个或两个参数已经存在,那么这些值将被简单地更新。

我假设您可以使用jQuery:

<form method="GET" action="http://www.example.com">
    <input type="hidden" name="date" id="date" value="<?php echo date;?>" />
    <select name="type">
        <option selected disabled value=''>Type</option>
        <!-- event option stuff -->
    </select>
    <input type="submit" value="submit" onclick="buildLink($('#date').val());">
    <br>
    <input type=button onclick="buildLink('2014-07-23');" value="Next week" />
    <input type=button onclick="buildLink('2014-07-09');" value="Prev week" />
</form>

为什么不为日期使用隐藏字段<代码>@SamMonk是的,我认为当日期已经存在并且表单已经提交时,这是一个很好的处理方法。但反过来又如何呢?即,当首先选择事件类型时。另外,如果同时存在日期和类型,并且选择了新类型或新日期,那么它将如何工作?@user1444027该日期将使用新值进行更新。下一周和上一周链接是否需要在同一表单中?在我的日历布局上,它们不在同一位置。我相信它们可以在你需要的任何地方。它们甚至可以是这样的链接
function buildLink(date) {
    $('#date').val(date);
    $('form').submit();
}