0

我有一个 ajax 多次删除的问题。我已经成功设置了变量中选中的复选框的值。我要解决的问题是如何在 php.ini 中获取已发送数组的值。这是ajax邮政编码

<script>
    $("#delete-btn").click(function(e){
        e.preventDefault();
        var id = new Array();
        $(".check:checked").each(function() {
            id.push($(this).attr('value'));

        }); 
        $.post("../ajax/multiDelete.php",{id:id},function(data){
            alert(data);    
        });
    });
</script>

现在,php页面

<?php

if(isset($_POST['id'])){
        $id = array($_POST['id']);

        foreach($id as $value){
                echo $value;    
        }
    }

?>

当数据被提醒时,我只得到“数组”;我不知道 JSON,所以如果没有它我可以做任何事情,那么非常感谢您的帮助!感谢:D

4

5 回答 5

1

由于 id 是一个数组,并且在您的代码中,您再次将其包装在一个数组中。取而代之的是,这样做:

<?php
    if(isset($_POST['id'])){
            // Don't use array($_POST['id']) as id is already an array
            $id = $_POST['id'];
            foreach($id as $value){
                    echo $value; 
                    // Here you'll get the array values   
            }
        }

    ?>
于 2013-10-25T11:35:21.193 回答
0

您必须通过以下方式访问您的检查值 -

<?php

if(isset($_POST['id'])){
        $id = array($_POST['id']);

        foreach($id as $value){
               foreach($value as $value1){
                echo $value1;    
        }
        }
    }

?>

因为这是数组里面的数组。

于 2013-10-25T12:38:38.047 回答
0

这与您的问题无关,但我只是想向您展示一种更好的获取id值的方法,而无需使用 jQuery 方法创建新的数组变量然后将项目推送到数组中.map():-

$("#delete-btn").click(function (e) {
    e.preventDefault();

    // Get all the values in the array 'id' variable
    var id = $(".check:checked").map(function () {
        return this.value || 0;
    }).get();

    $.post("../ajax/multiDelete.php", { id: id }, function (data) {
        alert(data);
    });
});

希望这可以帮助!

于 2013-10-25T11:37:47.683 回答
0

不要在 AJAX 中传递数组变量。使用 . 将 id 数组转换为 JSON JSON.stringify(id)

在 PHP 后端,使用

<?php $val = json_decode($_REQUEST['id']); 
       foreach($val as $ids){
           echo $ids;
        }

使用 $val 数组在 php 中继续进行。

于 2013-10-25T11:37:30.897 回答
0

如果你想从 php 中返回数组 - 用户 json_encode()

echo json_encode(array($_POST['id']));

PS JS 函数 alert() 无法打印数组或对象。使用 console.log(data) 你会在浏览器的开发者控制台中看到结果。

于 2013-10-25T11:32:53.950 回答