使用Ajax的PHP_POST不起作用

PHP _POST with Ajax not working

本文关键字:POST 不起作用 PHP Ajax 使用      更新时间:2023-09-26

我有以下JavaScript代码:

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js'></script>
<script>
    function sterge(id_user){
        console.log(id_user);
        var mesaj_post ='id_user=' + id_user;
        $.ajax({
            type: 'post',
            url: 'deleteStudent.php',
            data: mesaj_post,
            dataType: 'text',
            cache: false,
            success:function(data){
                console.log(data);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console.log(thrownError);
            }
        });
    }
</script>

问题是,在函数调用的PHP文件中,POST是空的,我不明白为什么。函数的参数不为空,脚本结果为SUCCESS

PHP代码:

<?php
include 'connect.php';
if(isset($_POST['id_user']))
    echo $_POST['id_user'];
else
    echo "empty post";
?>

你能帮我修一下吗?如有任何帮助,我们将不胜感激。

谢谢!

正如@charlietfl在他的评论中首先说的那样,替换是问题所在。但不仅仅是那个。表单也在进行替换。

谢谢!

我在评论中指出

删除window.location.replace-它用GET调用php,而没有id_user

如果你也张贴了你的表格,我们可能会看到你没有取消提交。我希望你用这样的东西

$("#formID").on("submit",function(e) { 
  e.preventDefault(); 
  $.post("deleteStudent.php",{ "id_user":$("#id_user").val() }, function(data) { 
    console.log(data); 
  });
});

当然会发生此错误,您传递一个字符串而不是josn对象来纠正此错误。您应该在javascript代码中执行以下操作:mesaj_post ={'id_user': id_user};:)

尝试使用此代码,这可能会对有所帮助

function sterge(id_user){
    console.log(id_user);
    var mesaj_post = {
        "id_user":id_user
    };
    $.ajax({
        type: 'post',
        url: 'deleteStudent.php',
        data: mesaj_post,
        dataType: 'text',
        cache: false,
        success:function(data){
            console.log(data);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console.log(thrownError);
        }
    });
}