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']));
  }

GoogleChromeコンソールのおかげでAJAXデータが送信されていることはわかっています。また、PHP関数removeAlert($ alertid)もテストしたので、機能することも知っています。ただし、PHP関数は動作しないので、ミドルウェアのコードと関係があると思います。

私は何時間もこれにいて、エラーを見ることができないようです。前もって感謝します。さらに情報が必要な場合はお知らせください。

4

1 に答える 1

0

私は自分の答えを見つけました。AJAX呼び出しは技術的に別のページに移動し、セッションを使用しているためと思われます。同じセッションの一部として扱われるように、AJAXページの上部にセッション開始を配置する必要がありました。

session_start();
于 2013-02-16T12:02:02.647 に答える