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

时间:2012-08-12 23:15:02

标签: php javascript jquery ajax json

我想在我的页面上找到一个按钮,它最终会成为一个删除按钮。但是因为它是<li>元素而不是带有表单等的平均提交按钮...我必须使用ajax发送要处理的所有变量,此刻我只是希望它们处于某种状态它们可以被处理的地方,但目前我的脚本似乎没有像我想要的那样返回任何值并输出它们。

希望从下面的代码中你会看到我的意思,我现在需要它只需从复选框中选择cehcked的所有值并将其发送到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>
    

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

  • 2 个答案:

    答案 0 :(得分:4)

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

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

    然后继续使用其余的代码。我没有必要检查你的其余代码,虽然我很讨厌$(':checkbox:checked'),因为我不认为这是正确的jquery ....首先,我建议修复我提到的第一个选择器,用jquery docs检查第二个选择器然后jshinting / jslinting你的代码。 (仅限Javascript)

    答案 1 :(得分:1)

    我不知道它是问题本身的错字还是你的脚本的问题,但传递的参数名称是“db”但在服务器端你期望“mess_id”

    相关问题