无法通过 ajax 将数组发送到 php 并返回

Can't send array to php via ajax and back

本文关键字:php 返回 数组 ajax      更新时间:2023-09-26

我正在尝试在我的页面上获取一个按钮,该按钮最终将是一个删除按钮来工作。但是,因为它是一个<li>元素,而不是带有表单等的普通提交按钮......我必须使用 Ajax 发送所有要处理的变量,目前我只希望它们处于可以处理的状态,但目前我的脚本似乎没有像我想要的那样返回任何值并输出它们。

希望从下面的代码中你会看到我的意思,我现在需要做的只是从复选框中选择所有值并将其发送到mail_trash.php,然后只是将其发送回并输出数组,这样我可以看到它正在选择正确的值等......实际的删除 php 代码已经编写并正常工作,这只是为了检查 Ajax。

这是javascript和ajax

    <script>
        $("document").ready(function (){ 
           $("li.trash").click(function(e){  
                 var db = $(':checkbox:checked').map(function(i,n) {
                    return $(n).val();
                 }).get(); //get converts it to an array
             if(db.length == 0) { 
             db = "none"; 
           }        
    $.ajax({
            type: "GET",
            url: "mail_trash.php",
            data: {'db[]':db  },
            dataType: "json",
            statusCode: {
                200: function (response) {
                                                                                           $("#mail_header_name").html(response.mess_id);
                                         }
            }
        });
    });
});

</script> 

这是mail_trash.php的脚本

  <?php
    include 'connect_to_mysql.php';
    $mess_id = $_GET["db"];
    echo json_encode($mess_id);

?>

只是为了检查按钮

  • <li><a class="trash" href="">&nbsp;</a></li>
    

    非常感谢您的帮助,这在过去的几个小时里一直困扰着我。

  • 这不是垃圾。它是a.trash,因为垃圾是a元素的一个类。因此,js 的前三行应该是:

       <script>
        $("document").ready(function (){ 
           $("a.trash").click(function(e){  
    

    然后用你们其余的代码依此类推。我还没有检查你的其余代码,尽管我对$(':checkbox:checked')很生气,因为我认为这不是正确的jquery....首先,我建议修复我提到的第一个选择器,使用 jquery 文档检查第二个选择器,然后 jshinting/jslinting 你的代码。(仅限Javascript)

    我不知道是

    问题本身的错别字还是您的脚本问题,但是传递时参数的名称是"db",但在服务器端您期望"mess_id"