PHP 没有收到来自 ajax 的数据

PHP dont receive data from ajax

我对 ajax 和 PHP 有疑问。当我尝试将数据从 ajax 发送到 PHP 时,ajax 似乎工作正常,因为警报正确显示数据(尽管在很短的时间内,下一次消失),但在我的 php 文件不显示任何数据(我用开发人员工具检查但没有结果) 这是我的 ajax 脚本

$(document).ready(function() {
    $('#tabla_eventos').on('click', '#guardar_bt', function(e) {
        e.preventDefault(); 
        var filaactual = $(this).closest("tr"); 
        var id_evento = filaactual.find("td:eq(0)").html(); 
        var parametros = {
            id_evento : id_evento
        };
        $.ajax({
            method:  'POST', 
            data:  parametros, 
            url:   'detalle_evento.php', 
            success:  function (response) {
                        location.href='detalle_evento.php';
                        alert('bien'+' '+id_evento);
                      }
        });
    });
});

这是我的 php 文件:

<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>
    <?php
    echo $_POST['id_evento'];
    ?>
    </h1>
</body>
</html>

问题出在您代码中的这一行:

location.href='detalle_evento.php';

脚本从 ajax 接收数据后,页面正在重新加载 POST 中的空数据(因为重新加载是 GET 请求)。

如果您想以这种方式使用此数据,请将此代码添加到您的 HTML(在正文部分)。

<form action="detalle_evento.php" method="post" id="someform">
  <input type="hidden" name="id_evento" id="id_evento" value="<?= $_POST['id_evento'] ?>">
</form>

并使用此 JS 代码

document.getElementById("id_evento").value = id_evento;
document.getElementById("someform").submit();

而不是你的这部分代码

$.ajax({
        method:  'POST', 
        data:  parametros, 
        url:   'detalle_evento.php', 
        success:  function (response) {
                    location.href='detalle_evento.php';
                    alert('bien'+' '+id_evento);
                  }
    });