[英]How to print the passed multidimensional array from controller to view in codeigniter?
[英]codeigniter: send a multidimensional array from view to controller via ajax
我有一个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中将多维数组从视图发送到控制器?
在您的视图中添加此代码
<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);
}
在视图中使用urlencode() (或javascript中的encodeURIComponent() ):
$newArray = urlencode(json_encode($array));
要么:
$.post('<?=base_url()?>controller/function/'+encodeURIComponent('<?=$newArray ?>')).done(function (res) {
alert(res);
});
和
$json = urldecode($urlencodedjson);
在接收方。
在视图中:
$newArray = json_encode($array)
$.post('<?=base_url()?>/controller/function',{t:<?=$newArray?>}).done(function (res) {
alert(res);
});
在控制器中:
$arr1 = $_POST['t'][0];
$arr1 = $_POST['t'][1];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.