2016-05-10 148 views
0

我有一个数组数组,我在视图中循环显示它们在一个表中,我有一个确认按钮,我需要点击才能将这些表数据存储在D b。我的问题是如何将这个数组的数组从视图传递给我的控制器,以便继续存储到数据库?Codeigniter:从视图到控制器传递阵列数组

我试过使用表单并将它作为发布数据使用json_encode()将数组转换为字符串,但没有运气。我得到一个错误

消息:json_decode()预计参数1是字符串数组给定

可我不知该数组变量传递给我的输入字段上单击功能?

谢谢。

+1

你能发表一些片段吗? –

回答

1

我找到了解决我的问题。这是对我有用的东西。 我是通过我的数组的数组作为字符串值在一个隐藏的输入字段使用

json_encode($array) 

但问题是,我的钥匙了双引号,因此在

value="<?php echo json_encode($array);?>" 

被打破...

的解决方案是逃脱字符,所以我有

value="<?php echo htmlspecialchars(json_encode($array));?>" 
替换上面的行

和Controller我不得不JSON让我阵列以下行

$dataJson = $this->input->post('array'); 
$dataArray = json_decode(htmlspecialchars_decode($dataJson), true); 

感谢大家的答案!

1

您可以在URL字符串这样传递数组:

?arr[]=val1&arr[]=val2 //pass as the url param 
//in controller 
var_dump($_GET["arr"]); 

//result should be 
array(2) { [0]=> string(4) "val1" [1]=> string(4) "val2" } 
相关问题