我有两个不同类型数据的问题。
我在Yii中有一个视图,它有一个表单控件。我想将一个数组和一个数组数组发送到我的创建操作。
数组是:$arraySons = ('albert','francis','rupert');
数组数组为$arrayFather = ('1'=>array(6,7,8));
我必须使用一些控件,因此表单会将其发布到$_POST
?...或者这样做不能完成,我必须使用javascript?
答案 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']);