在我的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表
谢谢
答案 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);你会看到他们出现在哪里