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');
}