繁体   English   中英

将Jquery添加到简单的PHP日历

[英]Add Jquery to simple PHP calendar

这个想法是加载日历而不刷新页面。 我究竟做错了什么? 它显示一个空白页

外部档案:Calendar.php

<?php
$year = (isset($_POST['year'])) ? $_POST['year'] : date("Y");
$week = (isset($_POST['week'])) ? $_POST['week'] : date('W');
  if($week > 52) {
    $year++;
    $week = 1;
  } elseif($week < 1) {
    $year--;
    $week = 52;
  }
 ?>

<table id="calenderWeek" border="1px">
<tr>
<?php
    $week = $_GET['week'];
    if($week < 10) {
        $week = '0'. $week;
    }
    for($day= 1; $day <= 7; $day++) {
        $d = strtotime($year ."W". $week . $day);
        echo "<td>". date('l', $d) ."<br>". date('d M', $d) ."</td>";
    }
?>
</tr>
</table>

index.php

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>load demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<div id="target">

</div>

<script>
 function load(week, year) {
 $("#target").load( "calender.php #calenderWeek", {"week":week, "year":year}         );}
</script>

这个想法是加载日历而不刷新页面。 我究竟做错了什么? 它显示一个空白页

好的,这并不是真正的答案,但是我认为您需要了解以下内容:

您的PHP仅生成HTML一周。 因此,如果您想使用JS更改星期,则必须为JS中的新Weeks生成HTML。 然后,您可以使用JS完成所有工作。

另一种方法是用php生成多个星期,并且仅显示其中一个。 然后,您可以使用JS隐藏并显示另一个星期。 如果您只能来回移动一定数量的星期,这将很有用。

如果您需要选择不受限制的一周,则必须使用纯JS进行压光或至少重新加载页面的压光部分。

只重新加载日历部分,您必须创建一个仅包含日历生成器的新站点:

calender.php

<?php
$year = (isset($_POST['year'])) ? $_POST['year'] : date("Y");
$week = (isset($_POST['week'])) ? $_POST['week'] : date('W');
if($week > 52) {
    $year++;
    $week = 1;
} elseif($week < 1) {
    $year--;
    $week = 52;
}
?>
<table id="calenderWeek" border="1px">
<tr>
    <?php
        $week = $_GET['week'];
        if($week < 10) {
            $week = '0'. $week;
        }
        for($day= 1; $day <= 7; $day++) {
            $d = strtotime($year ."W". $week . $day);
            echo "<td>". date('l', $d) ."<br>". date('d M', $d) ."</td>";
        }
    ?>
</tr>
</table>

然后只需将其加载到您想要的页面上的div中即可:

<script>
 function loadWeek(week, year)
 $( "#target" ).load( "/calender.php #calenderWeek", {"week":week, "year":year} );

/* Here call the function on page loading...*/
$( document ).ready( loadWeek(2,2016));

</script>

该加载函数,您可以调用document.ready并单击按钮,然后将其从#calenderWeek中取出,并将其放入#target div中

<div id="target">

</div>

有关更多信息,请查看load函数: http : //api.jquery.com/load/#loading-page-fragments

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM