Php 如何从视图中获取控制器中的数据

Php 如何从视图中获取控制器中的数据,php,arrays,codeigniter,post,Php,Arrays,Codeigniter,Post,我想将数组从视图保存到数据库 但我无法从视图中获取阵列 查看页面 <?php $nilai = array( array(1,2,3,4), array(a,b,c,d) ); <a href="<?= BASEURL; ?>/penerima/tambah?nilai=$nilai" class="btn btn-l btn-info">simpan</a> 查看参考 如果您使用的是codeigniter框架,那么要从URL获取价值,请尝试 $ni

我想将数组从视图保存到数据库 但我无法从视图中获取阵列

查看页面

<?php
$nilai = array(
array(1,2,3,4),
array(a,b,c,d)
);

<a href="<?= BASEURL; ?>/penerima/tambah?nilai=$nilai" class="btn btn-l btn-info">simpan</a>
查看参考 如果您使用的是
codeigniter框架
,那么要从URL获取价值,请尝试

$nilai = $this->input->get('nilai');

您可以
json\u encode
数组
并使用
urlencode
传递它

在你看来:

<?php
$nilai = array(
  array(1,2,3,4),
  array(a,b,c,d)
);
// encode to json string and encode to valid url
$nilai_urlencoded = urlencode(json_encode($nilai));

?>

<a href="<?= BASEURL; ?>/penerima/tambah?nilai=<?=$nilai_urlencoded; ?>" class="btn btn-l btn-info">simpan</a>
无法按原样在get请求中发送数组。因此,您可以按如下所示更改代码
查看页面

我找到了解决办法。这是对我有用的东西。我使用

json_encode()
解决办法是转义字符,所以我不得不用

htmlspecialchars(json_encode(array))
解决方案:

 $nilai = array(
    array(1,2,3,4),
    array('a','b','c','d')
    );
<a href="http://localhost/code/tambah?nilai=<?= htmlspecialchars(json_encode($nilai)); ?>" class="btn btn-l btn-info">simpan</a>
最佳解决方案

最好的方法是使用会话

$this->session->set_userdata('nilai',$nilai);
<a href="http://localhost/code/tambah" class="btn btn-l btn-info">simpan</a>

注意:在controller或autoload中加载会话库

您使用的是什么PHP框架?为什么视图会生成PHP数组?这与视图的定义相反。视图可能会要求用户输入,可能会以
的形式提交,但这是另一个问题我不使用我制作的mvc手册框架
htmlspecialchars(json_encode(array))
 $nilai = array(
    array(1,2,3,4),
    array('a','b','c','d')
    );
<a href="http://localhost/code/tambah?nilai=<?= htmlspecialchars(json_encode($nilai)); ?>" class="btn btn-l btn-info">simpan</a>
function tambah(){
$dataJson = $this->input->get('nilai');
$dataArray = json_decode(htmlspecialchars_decode($dataJson), true);
print_r($dataArray);
}
$this->session->set_userdata('nilai',$nilai);
<a href="http://localhost/code/tambah" class="btn btn-l btn-info">simpan</a>
function tambah(){
$array = $this->session->userdata('nilai');
}