cakephp:如何从Web表单中获取元素数组

时间:2010-10-31 07:26:11

标签: php cakephp

在我的cakephp表单中,我有以下代码

<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>

我试图从一组输入文本框中获取值,文本框的数量可以由用户设置,因此无法给出每个文本框的单独名称,但是如何从控制器中获取值以插入数据到db表

谢谢

3 个答案:

答案 0 :(得分:3)

您可以保留表单(并使用来自@Wizzard和@Lee的建议),但最佳做法是使用递增变量来构建列表。即:

for($i=0;$i<$option_number;$i++){
   echo $form->input("MyModel.{$i}.option");
}

这样,发布表单后您的变量将如下所示:

data [MyModel] [0] [option] ='值'    数据MyModel [选项] ='价值'    data [MyModel] [2] [option] ='值'    ......等等......

在控制器中,您可以通过以下方式访问发布的数据:

的print_r($这 - &GT;数据);

查看saveAll()(在浏览器中搜索saveAll并查找建议的数据结构)

答案 1 :(得分:1)

您的输入字段的名称都相同:option[]。这很好。它会导致php在加载请求时自动将它们变成一个数组。所以你可以在你的CakePHP控制器中得到它们:

$this->params['form']['option'][0]
$this->params['form']['option'][1]
... and so on ...

答案 2 :(得分:0)

很确定他们在控制器中的数组$ this-&gt; params ['form']或者$ this-&gt; data

在控制器的方法中,执行var_dump($ this);你会看到他们出现在哪里