【问题标题】:Not displaying array count不显示数组计数
【发布时间】:2014-04-07 06:53:46
【问题描述】:

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

$('#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
?>

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

提前致谢

【问题讨论】:

  • 试试array_count_values($mandate)
  • @Jenz since $_POST['mandate_array'] 得到像 2,3,4 这样的值,我想分解这个变量
  • @MilindAnantwar 试过但同样的空白结果
  • 在计数前添加echo
  • @Rikesh 真的很感谢,我真是个白痴,我怎么会忘记回应这个值。谢谢它的工作。如果您将此添加为答案,我会接受该答案

标签: php jquery ajax checkbox


【解决方案1】:

你必须回显变量计数值。

    <?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
?>

【讨论】:

    【解决方案2】:

    使用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)
    
                    }
                })
    
        });
    

    【讨论】:

      【解决方案3】:

      mandate_arrayArray,因此您不会在查询字符串中发布数组数据,您应该使用JSON.stringfy() 函数将数组/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']));

      【讨论】:

        【解决方案4】:

        count()前面使用echo

        【讨论】:

          猜你喜欢
          • 2016-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-07
          • 2021-03-14
          • 2019-06-18
          • 1970-01-01
          • 2019-09-30
          相关资源
          最近更新 更多