猿问

如何使用按钮更改页面 URL

我想在我的日历上做一个下一个/上一个按钮来显示下一个/上个月。


理想情况下,最好不要刷新页面,但首先我不介意必须刷新页面。


我在 php 中有一个 calendar($m,$y) 函数,可以让我直接在 url 中更改日历的值。例如(这是一个图像): http://localhost/VELO/index1.php?mois=3&year=2019


所以基本上,在这个例子中,我希望我之前的按钮将 url 更改为“.../index1.php?mois=2&year=2019”


我从关于这个主题的最常回答的问题之一中尝试了以下代码(以及许多其他代码),但没有奏效:


<script>

function getQueryVariable(variable) {

     var query = url.substring(1);

     var vars = query.split('&');

     for (var i=0; i<vars.length; i++) {

          var pair = vars[i].split('=');

          if (pair[0] == variable) {

            return pair[1];

          }

     }


     return false;

  }


var url = 'http://localhost/VELO/index1.php?mois=3&year=2019'


var mois = getQueryVariable(url, 'mois');

var year = getQueryVariable(url, 'year');


var params = { 'mois':2, 'year':2019};

var new_url = 'http://localhost/VELO/index1.php?' + jQuery.param(params);


// With this in my <body> : 

// <button type="button" class="precedent"><a href="new_url">Prev</a></button>


</script>

但我收到以下错误:


The requested URL /VELO/new_url was not found on this server

总之,我要问的是:


我使用的代码在这种情况下不适用吗?

还有其他方法可以通过按钮更改我的网址吗?(我可以使用 $_GET['month'] 吗?)

是否可以在不刷新页面的情况下执行此操作?


慕无忌1623718
浏览 301回答 2
2回答

阿晨1998

我找到了我的问题的答案!起初,我尝试了 degreerichi 发送给我的解决方案,但效果不佳。这是第一个不起作用的代码:<script> // NOT WORKING$(function() {&nbsp; &nbsp; $('.precedent').click(function(e){&nbsp; &nbsp; e.preventDefault();&nbsp; &nbsp; var targetUrl = "http://localhost/VELO/index1.php?mois=6";&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; window.history.pushState(null, null, targetUrl);&nbsp; &nbsp; setCurrentPage(targetUrl);&nbsp; &nbsp; });&nbsp;});</script>我的问题(如果有人仍然想解决/解释它)是 url 正在更改,但我的日历没有更改。例如,当我单击上一个按钮时,我的本地主机(图像)中有这个。您可以看到 url 已更改,但日历不是 6 月 (mois=6) 的日历。所以这是我解决问题的方法:<script> // WORKING$(function() {&nbsp; &nbsp; $('.precedent').click(function(e){&nbsp; &nbsp; e.preventDefault();&nbsp; &nbsp; var targetUrl = "http://localhost/VELO/index1.php?mois=6";&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; window.location = targetUrl;&nbsp; &nbsp; });&nbsp;});</script>在这种情况下,我的日历正在更新,如下图所示。

米脂

让您的 JavaScript 侦听绑定到按钮的 onclick 事件。如果您不想刷新页面,可以使用 ajax 调用该链接。我建议使用 JQuery 来帮助您完成此操作。
随时随地看视频慕课网APP
我要回答