使用AJAX将两个数组发送到PHP,无法获得响应

时间:2016-06-14 08:11:33

标签: php jquery arrays ajax

我制作了两个数组,每个数组都包含所有需要的ID:

$('.valider').click(function(){
        var confirmList = [];
        var refuserList = [];
        var id;

        /* CREATE refuserList ARRAY */
        $('input[type=checkbox][class=refuser]:checked').each(function () { 
          id = $(this).parent().parent().children('td:first-child').text();              
          refuserList.push(id);
        });

        /* CREATE confirmList ARRAY */
        $('input[type=checkbox][class=confirm]:checked').each(function () { 
          id = $(this).parent().parent().children('td:first-child').text();
           confirmList.push(id);

        });

        alert(confirmList);
        alert(refuserList);

        /* check if one of them has at least one element */
        if( confirmList.length > 0 || refuserList.length > 0){
          /* send info to php */
          $.post( "confirm_points.php", { 'confirmList[]' : confirmList , "refuserList[]" : refuserList } )
                    .done(function(data){

                      alert(data);
                      $('.test').html(data);
                    });
        }
      });

我尝试将confirmList和refuserList发送给PHP,这似乎可行,但一旦我在PHP中:

$accepter =json_decode($_POST['confirmList']);
$refuser = json_decode($_POST['refuserList']);

    var_dump($accepter);
    var_dump($refuser);

    echo $accepter; 
    echo $refuser;

它返回此错误:

  

警告:json_decode()期望参数1为字符串,数组在第5行的C:\ wamp \ www \ JAUGE \ confirm_points.php中给出

我必须使用什么才能在PHP中访问数组?

编辑

第一条评论解决了这个问题。 一开始我没有把[]放在AJAX请求中:

 $.post( "confirm_points.php", { 'confirmList[]' : confirmList , "refuserList[]" : refuserList } )
                    .done(function(data){

所以我尝试了json_parse,json_decode,但它似乎永远不会起作用。当我终于把[]我还在尝试所有json_decode的东西时,但它没有它完美的工作,所以最终PHP只是:

if(isset($_POST['confirmList'])){
        $accepter =$_POST['confirmList'];
    }
if(isset($_POST['refuserList'])){
        $refuser = $_POST['refuserList'];
    }


    var_dump($_POST['confirmList']);

    echo $accepter[0];

1 个答案:

答案 0 :(得分:1)

$_POST['confirmList']

它的数组本身。不需要json_decode()这个。