Codeigniter:将数组数组从视图传递到控制器

时间:2016-05-10 00:13:56

标签: php codeigniter

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

我尝试过使用表单并使用json_encode()将其作为发布数据传递,以将数组转换为字符串,但没有运气。我收到错误

  

消息:json_decode()期望参数1为字符串,给定数组

我可以以某种方式将数组变量传递给输入字段的点击功能吗?

感谢。

2 个答案:

答案 0 :(得分: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" }

答案 1 :(得分:1)

我找到了解决问题的方法。这对我有用。 我使用

将我的数组数组作为字符串值传递给隐藏的输入字段
json_encode($array)

但问题是我的密钥是双引号,结果是

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

正在崩溃......

解决方案是逃避角色,所以我不得不用

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

在控制器中,我必须使用以下行从json获取我的数组

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

谢谢大家的答案!