我有一个包含书籍列表的页面,每一行都有一个复选框。(我使用的是 cakephp 1.2)。
我想让用户保存多本书。
现在我的视图中有这个复选框(在一个循环中,我得到所有书籍的列表):
<?php echo $form->input('salva', array('value' => $cdBiblio['CdBiblio']['codiceBiblio'], 'label' => '', 'type' => 'checkbox')); ?>
这种形式:<?php echo $form->create('cd_biblios', array('action' => 'save')); ?>
这个按钮:
<?php echo $form->end('Add All');?>
在控制器中,我有这样的调试:
debug($this->data);
foreach($this->data['cd_biblios']['salva'] as $item) {
debug($item);
}
但它不起作用。
我注意到它只需要列表的最后一本书 ID 和 debug($this->data); 如果我检查超过 1 本书,它会显示 0 或最后一本书的 ID,例如:
Array (
[cd_biblios] => Array
(
[salva] => 0
) )
已解决:
在视图中,我使用了 Danial 的代码。
在控制器中,我使用以下代码:
if(!empty($this->data)) {
$item=$this->data;
debug($item);
$dim=count($item['Model']['field']);
$i=0;
for ($i=0;$i<$dim;$i++)
if ($item['Model']['field'][$i]!=0)
{
$data = $this->Session->read('libri');
$data[] = $item['Model']['field'][$i];
$this->Session->write('libri', $data);
}
$this->Session->setFlash(__('I libri sono stati salvati', true));
$this->redirect($this->referer());
}