Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript处理按钮单击时的日期更改_Javascript_Php - Fatal编程技术网

使用javascript处理按钮单击时的日期更改

使用javascript处理按钮单击时的日期更改,javascript,php,Javascript,Php,我正在使用javascript处理按钮单击时的更改日期。 我的问题是,当页面加载时,它会显示今天的日期,当我单击按钮时,它会更改日期并通过url发送值。到目前为止,一切正常,但当页面重新加载时,它会再次显示今天的日期。它应该显示更改的日期,而不是此日期。 在过去的两天里,我一直在研究这个问题,但我没有得到任何合适的解决方案。 以下是我的js代码: document.getElementById("up").onclick = function() { var i = dataI.valu

我正在使用javascript处理按钮单击时的更改日期。 我的问题是,当页面加载时,它会显示今天的日期,当我单击按钮时,它会更改日期并通过url发送值。到目前为止,一切正常,但当页面重新加载时,它会再次显示今天的日期。它应该显示更改的日期,而不是此日期。 在过去的两天里,我一直在研究这个问题,但我没有得到任何合适的解决方案。 以下是我的js代码:

document.getElementById("up").onclick = function() {
    var i = dataI.valueOf() + 86400000 ;

    dataI = new Date(i);

    document.getElementById("dateD").innerHTML = dataI.toDateString();
    var b = dataI.toDateString();
    window.location="datechange.php?date=" + b;
}

document.getElementById("down").onclick = function() {
    var i = dataI.valueOf() - 86400000 ;
    dataI = new Date(i);
    document.getElementById("dateD").innerHTML = dataI.toDateString();
    var c = dataI.toDateString();
    window.location.href ="datechange.php?previous=" + c;
}

var dataI = new Date();
document.getElementById("dateD").innerHTML = dataI.toDateString();
这是我的身体:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<input type=button id=down value=down >

<span id=dateD></span>

<input type=button id=up value=up >


<div id="div1-wrapper"> 
    <div id="abcd">
        <?php
            $date2 = $_GET['date'];
            echo $date2;
            $date3 = $_GET['previous'];
            echo $date3;
        ?>
    </div>
</div>

我想你可以通过如下方式将日期存储在会话中,我已经对你的代码进行了更改,看看它是否能解决你的问题

<?php
    session_start();
?>  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<input type="button" id="down" value="down" >

<?php
$date = '';
if(isset($_GET['date'])) { $date = $_GET['date']; };
if(isset($_GET['previous'])){ $date = $_GET['previous']; };

if(isset($date)){   

    $_SESSION['dt']=$date;
}
?>
<span id=dateD><?php echo $_SESSION['dt'];?></span>

<input type="button" id="up" value="up" >


<div id="div1-wrapper"> 
<div id="abcd">
<?php
echo $date;
?>

</div></div>

<script language="javascript">
    document.getElementById("up").onclick = function(){ 
    var i = new Date(document.getElementById("dateD").innerHTML).valueOf() + 86400000 ;

    dataI = new Date( i);

    document.getElementById("dateD").innerHTML = dataI.toDateString();
    var b = dataI.toDateString();
    window.location="file.php?date="+b;

    }
    document.getElementById("down").onclick = function(){

    var i = new Date(document.getElementById("dateD").innerHTML).valueOf() - 86400000 ;
    dataI = new Date( i);
    document.getElementById("dateD").innerHTML =dataI.toDateString();
    var c = dataI.toDateString();
    window.location.href ="file.php?previous="+c;
    }

    var dataI = new Date();

    if(document.getElementById("dateD").innerHTML == ''){ 
        document.getElementById("dateD").innerHTML = dataI.toDateString();
    }


    if(document.getElementById("dateD").innerHTML == dataI.toDateString()){
        document.getElementById("down").style.display='none';
    }

</script>

document.getElementById(“up”).onclick=function(){
var i=新日期(document.getElementById(“dateD”).innerHTML).valueOf()+86400000;
数据i=新日期(i);
document.getElementById(“日期”).innerHTML=dataI.toDateString();
var b=dataI.toDateString();
window.location=“file.php?date=“+b;
}
document.getElementById(“向下”).onclick=function(){
var i=新日期(document.getElementById(“dateD”).innerHTML).valueOf()-86400000;
数据i=新日期(i);
document.getElementById(“日期”).innerHTML=dataI.toDateString();
var c=dataI.toDateString();
window.location.href=“file.php?previous=“+c;
}
var dataI=新日期();
if(document.getElementById(“dateD”).innerHTML==''){
document.getElementById(“日期”).innerHTML=dataI.toDateString();
}
if(document.getElementById(“dateD”).innerHTML==dataI.toDateString()){
document.getElementById(“down”).style.display='none';
}

以下是jquery中解决您的问题的脚本

var dataI = new Date();
var current_tm = dataI.valueOf();
$(function(){
var urlParams = new URLSearchParams(window.location.search);
var display_date;

if(urlParams.has('date')){
    var tmp_stamp = urlParams.get('date');
    display_date = new Date(parseInt(tmp_stamp)).toDateString();
}else{
    display_date = dataI.toDateString();
}
$("#dateD").html(display_date);

$("#up").click(function(){
    if(urlParams.has('date')){
        var i = parseInt(urlParams.get('date'))+ 86400000 ;
    }else{
        var i = current_tm + 86400000 ;
    }
    var b = new Date(i);
    $("#dateD").innerHTML = b.toDateString();
    window.location="datechange.php?date="+ i;
});
$("#down").click(function(){
    if(urlParams.has('date')){
        var i = parseInt(urlParams.get('date')) - 86400000 ;
    }else{
        var i = current_tm - 86400000 ;
    }
    var c = new Date(i);
    $("#dateD").innerHTML = c.toDateString();
    window.location="datechange.php?date="+ i;
});

});

它工作,但现在的问题是当我再次点击按钮时,它没有改变日期嘿Shubhange如果日期与今天的日期相同,是否可以禁用上一个按钮?我已经更新了隐藏按钮的代码,看看更新的代码。你太棒了Shubhange你解决了我的问题谢谢