【问题标题】:codeigniter: send a multidimensional array from view to controller via ajaxcodeigniter:通过 ajax 将多维数组从视图发送到控制器
【发布时间】:2016-10-30 15:48:36
【问题描述】:

我有一个php多维数组:

$array[0] = array('Jack','jack@mail.com');
$array[1] = array('one'=>'test1','two'=>'test2'); //unknown data limit 
it could be 5 or 10 or 100 items consider the second array as purchased products.

我想将此数组 $array 从视图发送到控制器。我试过了:

$newArray = json_encode($array);
$.post('<?=base_url()?>controller/function/<?=$newArray ?>').done(function (res) {
        alert(res);
    });

但我收到一个安全错误,无法在 url 中发送 '[' 或 '{'。当我在帖子中回显 $array 时,它不会起作用,因为结果将是:“Array”。

那么现在的问题是如何将这个多维数组从视图发送到codeigniter中的控制器?

【问题讨论】:

  • 作为$.post的第二个参数
  • 工作得很好,谢谢。我仍然不熟悉codeigniter,并在没有json_encode的情况下尝试了这种方式,但没有奏效。您可以将其添加为答案 $.post('=base_url()?>/controller/function',{t:=newArray?>})
  • 你可以回答你自己的问题)

标签: php arrays ajax codeigniter multidimensional-array


【解决方案1】:

在您的视图中添加此代码

<script>
   var myJsonString = JSON.stringify(yourArray);
   var url="<?php echo base_url(); ?>/controller/show_json";
   $.ajax({
     type: "POST",
     url: url,
     dataType: 'json',
     data: myJsonString,
     success: function(data){
             console.log(data); 
          }
      });
</script>

在您的控制器上添加此功能

function show_json()
{
   print_r($_POST);
}

【讨论】:

    【解决方案2】:

    在视图中使用urlencode()(或JavaScript 中的encodeURIComponent()):

    $newArray = urlencode(json_encode($array));
    

    或:

    $.post('<?=base_url()?>controller/function/'+encodeURIComponent('<?=$newArray ?>')).done(function (res) {
            alert(res);
        });
    

    $json = urldecode($urlencodedjson);
    

    在接收端。

    【讨论】:

      【解决方案3】:

      在视图中:

      $newArray = json_encode($array)
      $.post('<?=base_url()?>/controller/function',{t:<?=$newArray?>}).done(function (res) {
           alert(res);
      });
      

      在控制器中:

      $arr1 = $_POST['t'][0];
      $arr1 = $_POST['t'][1];
      

      【讨论】:

        猜你喜欢
        • 2018-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多