我需要根据当前月份设置30或29或30或28个输入,并在发布后从这些输入中获取文本。在我看来,我是这样做的:
echo $this->Form->create('Cra');
foreach ($MonthDaysM as $i) : ?>
<td><?php echo $this->Form->input($i, array('label'=>false));?></td>
<?php endforeach; ?>
</form>
和控制器
if ($this->request->is('post')) {
$date = $this->request->data['Cra'][$i];
…
但是不起作用,因为输入的名称不应该是变量。但是我怎样才能得到输入的内容????
您需要调用输入字段名,然后添加索引,如下所示:
<?php foreach ($MonthDaysM as $i) : ?>
<td><?php echo $this->Form->input('your_field_name.' . $i, array('label'=>false));?></td>
<?php endforeach; ?>
则在控制器中检查$this->request->data['Cra']['your_field_name']
。应该是一个数组
我不是很清楚你的模型'Cra'是如何定义的,但如果你想获得输入的内容:
在你看来:
<?php for($i = 1; $i <= date('t'); $i++) : ?>
<td><?php echo $this->Form->input('Cra.days.'.$i, array('label'=>false)); ?></td>
<?php endfor; ?>
然后,在你的控制器中,你可以这样访问你的days数组的内容:
if($this->request->is('post')){
$days = $this->request->data['Cra']['days'];
}
例如,'days'数组的结果为:
Array
(
[1] => Day 1 content
[2] => Day 2 content
[3] => Day 3 content
...
)