0

我又在搞乱 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']));
  }

我知道 AJAX 数据是通过 Google Chrome 控制台发送的。我也知道 PHP 函数 removeAlert($alertid) 也可以工作,因为我已经测试过了。但是,PHP 函数不起作用,所以我认为这与中间件代码有关。

我已经在这几个小时了,似乎看不到错误。提前致谢。如果您需要更多信息,请告诉我。

4

1 回答 1

0

我想出了自己的答案。似乎是因为 AJAX 调用在技术上会转到另一个页面,而我正在使用会话。我需要在 AJAX 页面的顶部放置一个会话开始,以便将其视为同一会话的一部分。

session_start();
于 2013-02-16T12:02:02.647 回答