我再次搞乱AJAX并且在将数据传递给PHP时遇到了麻烦。
上下文
我希望做的是使用AJAX制作警报框,而不是每次关闭警报框时刷新整个页面。
守则:
JavaScript:
var endpoint = './ajax-call.php';
$('.close').click(function(){
$(this).parent().fadeOut(500, function(){
var classes = $(this).attr("class").split(" ");
var alertid = classes[classes.length - 1];
$.ajax({
type: 'POST',
url: endpoint,
data: {f: 'removealert', id: alertid},
cache: false
});
});
});
PHP:
function removeAlert($alertindex){
unset($_SESSION['alerts'][$alertindex]);
}
中间件(也是PHP):
if($_POST['f'] == 'removealert'){
removeAlert(intval($_POST['id']));
}
我知道Google Chrome控制台正在发送AJAX数据。我也知道PHP函数removeAlert($ alertid)也有效,因为我测试了它。但是,PHP函数不起作用,所以我认为它与中间件代码有关。
我已经在这里工作了好几个小时,似乎无法看到错误。提前致谢。如果您需要更多信息,请告诉我们。
答案 0 :(得分:0)
我想出了自己的答案。似乎因为AJAX调用在技术上转到另一个页面,我正在使用会话。我需要在AJAX页面的顶部放置一个会话开始,因此它被视为同一会话的一部分。
session_start();