YII通过表单发送从视图到控制器动作的数组或数组数组

时间:2014-05-21 12:57:53

标签: php arrays post yii

我有两个不同类型数据的问题。

我在Yii中有一个视图,它有一个表单控件。我想将一个数组和一个数组数组发送到我的创建操作。

数组是:$arraySons = ('albert','francis','rupert');

数组数组为$arrayFather = ('1'=>array(6,7,8));

我必须使用一些控件,因此表单会将其发布到$_POST?...或者这样做不能完成,我必须使用javascript?

2 个答案:

答案 0 :(得分:2)

通常,在HTML表单中,您可以通过使用多个具有相同名称的字段和数组表示法来创建数组。

<input name="sons[]">
<input name="sons[]">

当您提交表单时,$ _POST ['sons']将是一个数组,可以按如下方式处理:

foreach ($_POST['sons'] as $son) {

    echo 'Son of the father is '.$son."\n";

}

答案 1 :(得分:1)

您可以在@crafter的答案中创建表单。我只想了解更多细节:

<input type="hidden" name="sons[]" value="albert">
<input  type="hidden" name="sons[]" value="rupert">

等等

然后对于父亲你会做类似的事情:

<input  type="hidden" name="father[1][]" value="6">
<input  type="hidden" name="father[1][]" value="7">
<input  type="hidden" name="father[1][]" value="8">

但是如果用户不需要查看数据,您可以准备一个包含数据的JSON对象,并将其发布在1个字段中,这对我来说似乎更容易

<input  type="hidden" name="father" value="<?= json_encode($arrayFather); ?>">
<input  type="hidden" name="sons" value="<?= json_encode($arraySons); ?>">

然后在您的操作中,您可以从帖子中获取数据并使用json_decode

对其进行解码
$myArrayFather = json_decode($_POST['father']);
$myArraySons = json_decode($_POST['sons']);