2 回答
TA贡献1803条经验 获得超6个赞
如果您使用Fetchapi 并向 PHP 脚本发送 POST 请求,您可以尝试这样的操作 - 未经测试:
<?php
# calendar.php ~ obviously there will need to be MORE code than this...
if( SERVER['REQUEST_METHOD']=='POST' && isset($_POST['year'],$_POST['month']) ){
#ensure no extra data is sent back - flush buffers
ob_clean();
#send a response
exit( createCalendar( $_POST['year'], $_POST['month'] ) );
}
?>
以及使用 Javascript 发送 AJAX 请求Fetch
let next = document.getElementById("buttonNext");
let monthNb = String(new Date().getMonth() + 1).padStart(2, '0');
let yearNb = new Date().getFullYear();
next.addEventListener("click", function(event) {
monthNb++;
If (monthNb > 12) {
yearNb++;
}
let fd=new FormData();
fd.append('year',yearNb);
fd.append('month',monthNb);
fetch( '/path/to/calendar.php', {method:'post',body:fd})
.then( res=>res.text() )
.then( text=>{
document.getElementById("calendarContainer").innerHTML=text
})
});
TA贡献1784条经验 获得超2个赞
有很多方法可以执行 ajax 并进行许多优化,但我为您提供了如何执行此操作的简单指南。最简单的方法是在 Web 服务器中创建一个 php 文件,将其命名为 ajax.php,其内容为
<?php echo createCalendar($_GET['year'], $_GET['month']); ?>
然后,在您的 js 代码中对该 ajax.php 文件进行 ajax 调用,例如:
let next = document.getElementById("buttonNext");
let monthNb = String(new Date().getMonth() + 1).padStart(2, '0');
let yearNb = new Date().getFullYear();
next.addEventListener("click", function(event) {
monthNb++;
If (monthNb > 12) {
yearNb++;
}
fetch(`ajax.php?year=${yearNb}&month=${monthNb}`, {
method: 'GET',
headers:{
'Content-Type': 'application/json'
},
})
.then(response => {
document.getElementById("calendarContainer").innerText = response;
}).catch(error => console.error('Error:', error));
});
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报