如何改变php通过ajax为指定的用户只


How to change php via ajax for specified user only

我需要帮助,因为我已经没有主意了。

我有一个ajax脚本和php脚本,逻辑如下:1. PHP脚本正在制作一个带有标记预订的日历并将其发送到HTML页面,2. 在HTML页面上,用户可以点击按钮"下个月",它发送一个ajax请求到php脚本。3.PHP正在做月++并发送结果。

由于每次请求都会在php脚本中重置,因此只能工作一次。

你知道如何在日历中随意洗牌吗?

PHP:

<?php
require_once ("config.php");
/* Fields counter */
$FieldsNo=1;
/* Getting today's date*/ 
$date = date("d.n.Y");
/* date slicing */
$str = explode(".", $date);
    $day = $str[0];
    $month = $str[1];
    $year = $str[2];
    $gmonth = $month;
    $gyear = $year;
if (isset($_POST['month'])) {
    $month++;
}
require_once ("arrays.php");

/* operation with calendar */
$daysinmonth=cal_days_in_month(CAL_GREGORIAN, $month, $year);
$julianDayCount=cal_to_jd(CAL_GREGORIAN, $month, 1, $year);
$dayOfWeek=jddayofweek($julianDayCount, 0);
$fullies = $daysinmonth;
/* counting amount of empty fields */
switch ($dayOfWeek) {
case 0:
    $empties= 6;
    break;
case 1:
    $empties= 0;
    break;
case 2:
    $empties=1;
    break;
case 3:
    $empties = 2;
    break;
case 4:
    $empties = 3;
    break;
case 5:
    $empties = 4;
    break;
case 6:
    $empties = 5;
    break;
}
/* month translation*/
if ($language == "pl") {
    include("months_pl.php"); 
} else {
    include("months_eng.php"); 
}
/* echoing calendar base */
echo $monthn;
echo $day;
echo "<br>";
if ($language == "pl") {
    include("days_pl.php"); 
} else {
    include("days_eng.php"); 
}
/* first loop - empty fields */
if ($today) {
    include("calendarloopt.php"); 
} else {
    include("calendarloop.php"); 
} 
echo "</tr></tbody></table>";
echo json_encode($loadout);
?>

HTML/AJAX

<!DOCTYPE html>
<html lang="en">
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
         <script>
            $(document).ready(function(){
            $("#next").click(function() {
var jqXHR = $.ajax({
    type     : "POST",
    url      : "calendar.php",
    data     : {
            month: 'next'
    },
    success: function(html){
$("#loadplace").html(html);
},
    error:    function(error) {
        //ten fragment wykona się w przypadku BŁĘDU
    }
});
            return jqXHR.responseText;
            });
            });
</script>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <input type="button" id="next" value="Next Month"/>

        <div id="loadplace" align="right" width="400" height ="400">
<?php
            include 'calendar.php';
            ?>
        </div>
    </body>
</html>

不要在每次PHP页面运行时都重置它的值。

使用会话变量代替(如果尚未设置会话变量,则设置为合理的默认值)。

同样,当您尝试增加12月时,您当前的代码将失败。看一下PHP的Datetime::add函数

您应该在JavaScript中执行月份递增,而不是在PHP中。

AJAX请求应该返回与传递给它的参数一致的值。你想要实现它的方式,它也依赖于一个内部变量。

您的实际脚本也没有多少灵活性。它只能在下个月归还。如果您希望能够返回前一个月,或者将来的某个特定月份,该怎么办?

在我看来,您应该更改AJAX脚本,要么返回特定月份的日历,要么返回特定月份之后(或之前)月份的日历。