Php 如何使用按钮更改页面URL

Php 如何使用按钮更改页面URL,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试在日历上执行下一个/上一个按钮以显示下一个/上一个月 理想情况下,最好不要刷新页面,但首先我不介意刷新页面 我有一个php中的calendar($m,$y)函数,可以直接在url中更改日历的值。例如(这是一幅图像): 因此,基本上,在这个示例中,我希望前面的按钮将url更改为“../index1.php?mois=2&year=2019” 我尝试了以下代码(以及许多其他代码),这是关于这个主题的回答最多的问题之一,但没有成功: <script> function getQ

我正在尝试在日历上执行下一个/上一个按钮以显示下一个/上一个月

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

我有一个php中的calendar($m,$y)函数,可以直接在url中更改日历的值。例如(这是一幅图像):

因此,基本上,在这个示例中,我希望前面的按钮将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>
总之,我想问的是:

  • 我使用的代码在这种情况下不适用吗
  • 有没有其他方法可以通过按钮更改我的url?(我可以使用$_GET['month']?)
  • 是否可以在不刷新页面的情况下执行此操作

让JavaScript监听绑定到按钮的onclick事件。如果您不想刷新页面,可以使用ajax调用该链接。我建议使用JQuery来帮助您完成这一任务。

让您的JavaScript侦听绑定到按钮的onclick事件。如果您不想刷新页面,可以使用ajax调用该链接。我建议使用JQuery来帮助您完成这一任务。

我找到了问题的答案

起初,我尝试了Degrerichi发给我的解决方案,但效果不太好。 以下是第一个不起作用的代码:

<script> // NOT WORKING
$(function() {

    $('.precedent').click(function(e){
    e.preventDefault();
    var targetUrl = "http://localhost/VELO/index1.php?mois=6";        
    window.history.pushState(null, null, targetUrl);
    setCurrentPage(targetUrl);
    }); 

});
</script>
//不工作
$(函数(){
$('.preference')。单击(函数(e){
e、 预防默认值();
var targetUrl=”http://localhost/VELO/index1.php?mois=6";        
window.history.pushState(null,null,targetUrl);
setCurrentPage(targetUrl);
}); 
});
我这里的问题(如果还有人想解决/解释)是url正在更改,但我的日历没有更改。例如,当我点击我的上一个按钮时,我在我的页面中有这样的内容,你可以看到url已更改,但日历不是6月份的日历(mois=6)

下面是我如何解决这个问题的:

<script> // WORKING
$(function() {

    $('.precedent').click(function(e){
    e.preventDefault();
    var targetUrl = "http://localhost/VELO/index1.php?mois=6";       
    window.location = targetUrl;
    }); 

});
</script>
//正在工作
$(函数(){
$('.preference')。单击(函数(e){
e、 预防默认值();
var targetUrl=”http://localhost/VELO/index1.php?mois=6";       
window.location=targetUrl;
}); 
});

在这种情况下,我的日历正在更新,如下所示

我找到了问题的答案

起初,我尝试了Degrerichi发给我的解决方案,但效果不太好。 以下是第一个不起作用的代码:

<script> // NOT WORKING
$(function() {

    $('.precedent').click(function(e){
    e.preventDefault();
    var targetUrl = "http://localhost/VELO/index1.php?mois=6";        
    window.history.pushState(null, null, targetUrl);
    setCurrentPage(targetUrl);
    }); 

});
</script>
//不工作
$(函数(){
$('.preference')。单击(函数(e){
e、 预防默认值();
var targetUrl=”http://localhost/VELO/index1.php?mois=6";        
window.history.pushState(null,null,targetUrl);
setCurrentPage(targetUrl);
}); 
});
我这里的问题(如果还有人想解决/解释)是url正在更改,但我的日历没有更改。例如,当我点击我的上一个按钮时,我在我的页面中有这样的内容,你可以看到url已更改,但日历不是6月份的日历(mois=6)

下面是我如何解决这个问题的:

<script> // WORKING
$(function() {

    $('.precedent').click(function(e){
    e.preventDefault();
    var targetUrl = "http://localhost/VELO/index1.php?mois=6";       
    window.location = targetUrl;
    }); 

});
</script>
//正在工作
$(函数(){
$('.preference')。单击(函数(e){
e、 预防默认值();
var targetUrl=”http://localhost/VELO/index1.php?mois=6";       
window.location=targetUrl;
}); 
});

在这种情况下,我的日历将更新如下

解决方案中有一些类似的问题:,。解决方案中有一些类似的问题:,。谢谢,我发布了我对问题的答案!谢谢,我发布了我对这个问题的答案!不要硬编码URL。至少尝试获取主机名,然后附加路径。是的,我不会让我的URL像那样,但我将创建另一个函数来捕获当前的年/月变量ID,然后添加+1或-1,以便我的“上一个/下一个”按钮按预期工作。不要硬编码URL。至少尝试获取主机名,然后附加路径。是的,我不会让我的URL像那样,但我将制作另一个函数来捕获当前的年/月变量ID,然后添加+1或-1,这样我的上一个/下一个按钮就可以像它们应该的那样工作。