如何仅为指定用户通过ajax更改php
我需要一只手,因为我没有主意了 我有一个ajax脚本和php脚本,逻辑如下: 1.PHP脚本正在制作带有标记预订的日历,并将其发送到HTML页面, 2.在HTML页面上,用户可以点击“下个月”按钮,它会向php脚本发送一个ajax请求。 3.PHP正在做month++并发送结果 由于每次请求都在php脚本中重置,因此只能执行一次。 月份++总是只有一个月的时间 你有没有办法在日历上随意移动 PHP:如何仅为指定用户通过ajax更改php,php,jquery,ajax,calendar,Php,Jquery,Ajax,Calendar,我需要一只手,因为我没有主意了 我有一个ajax脚本和php脚本,逻辑如下: 1.PHP脚本正在制作带有标记预订的日历,并将其发送到HTML页面, 2.在HTML页面上,用户可以点击“下个月”按钮,它会向php脚本发送一个ajax请求。 3.PHP正在做month++并发送结果 由于每次请求都在php脚本中重置,因此只能执行一次。 月份++总是只有一个月的时间 你有没有办法在日历上随意移动 PHP: 不要在每次运行PHP页面时重置该页面中的值 改用变量(如果会话变量尚未设置,则设置为合理的默认值
不要在每次运行PHP页面时重置该页面中的值
改用变量(如果会话变量尚未设置,则设置为合理的默认值)
此外,当您尝试递增时,当前代码将失败。看看PHP函数您应该在JavaScript中而不是在PHP中进行月份递增
AJAX请求应该返回一个与它所传递的参数一致的值。实现它的方式也取决于内部变量
您的实际脚本也没有多少灵活性。它只能在下个月返回。如果您希望能够返回前一个月,或者未来的某个特定月份,该怎么办
在我看来,您应该更改AJAX脚本以返回特定月份的日历,或者返回特定月份的下一个月(或上一个月)的日历。我需要对会话进行一些研究,但非常感谢。不幸的是,我不能投票支持你:
<?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);
?>
<!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>