不显示数组计数

时间:2014-04-07 06:53:47

标签: php jquery ajax checkbox

我的页面上有多个复选框,我想在我的数据库中获取这些复选框值。

$('#assign_data').on("click",function()
    {
        var mandate_array = [];
        var i= 0;

        $('.assign_mandate:checked').each(function(){
             mandate_array[i++] = $(this).val();
        });


        $.ajax
            ({
                type: "POST",   
                url: BASE_URL+"mandate/assign_mandate.php", 
                data: "mandate_array="+mandate_array+"&role_id="+$('#role').val()+"&user_id="+$('#user').val(), 
                success: function(msg)
                {
                    console.log(msg)

                }
            })

    });

assign_mandate.php:

<?php

  $mandate = explode(',',$_POST['mandate_array']);

  // print_r($mandate);  //it shows the data in array

  count($mandate);exit;  // it does not show the count in console
?>

当我打印数组时,它会在控制台中向我显示数组数据,但是当我尝试回显数组的数量时,它显示为空白。为什么?

提前致谢

4 个答案:

答案 0 :(得分:0)

echo

前面使用count()

答案 1 :(得分:0)

使用JSON.stringify

您通常会使用JSON.stringify将数组转换为JSON字符串,然后向服务器发出AJAX请求,接收字符串参数并使用json_decode来获取PHP端的数组。

$('#assign_data').on("click",function()
    {
        var mandate_array = [];
        var i= 0;

        $('.assign_mandate:checked').each(function(){
             mandate_array[i++] = $(this).val();
        });


        $.ajax
            ({
                type: "POST",   
                url: BASE_URL+"mandate/assign_mandate.php", 
                data: "mandate_array="+JSON.stringify(mandate_array)+"&role_id="+$('#role').val()+"&user_id="+$('#user').val(), 
                success: function(msg)
                {
                    console.log(msg)

                }
            })

    });

答案 2 :(得分:0)

mandate_arrayArray所以你不会在查询字符串中发布数组数据,你应该使用JSON.stringfy()函数将array / JSON对象转换为字符串。

   $.ajax
        ({
            type: "POST",   
            url: BASE_URL+"mandate/assign_mandate.php", 
            data: "mandate_array="+JSON.stringfy(mandate_array)+"&role_id="+$('#role').val()+"&user_id="+$('#user').val(), 
            success: function(msg)
            {
                console.log(msg)

            }
        })

在PHP代码中

var_dump(json_decode($_POST['mandate_array']));

答案 3 :(得分:0)

您必须回显变量计数值。

    <?php

  $mandate = explode(',',$_POST['mandate_array']);

  // print_r($mandate);  //it shows the data in array

  echo count($mandate);exit;  // it does not show the count in console
?>