【问题标题】:multiple checkboxes with cakephp 1.2cakephp 1.2 的多个复选框
【发布时间】:2013-02-11 09:17:42
【问题描述】:

我有一个包含书籍列表的页面,每一行都有一个复选框。 (我使用的是 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());
    }

【问题讨论】:

    标签: cakephp checkbox cakephp-1.2


    【解决方案1】:

    在视图中:

    <?php 
    foreach($array as $each_elem) { 
    echo $form->checkbox(
            'Model.field', 
            array(
                  'id'=>'abcd_'.$each_elem['Model']['id'],
                  'value' => $each_elem['Model']['id'],
                  'hiddenField' => false,
                  'name' => 'data[Model][field][]',
                  'label' => false,
                  'div' => false,
            ));
    }
    ?>
    

    提交表单后,您将在$this-&gt;request-&gt;data 的控制器中获得检查值

    【讨论】:

    • 我正在接近你的代码:在控制器中我有 $this->data 这是所有书籍的数组(如果未选中,则为 0,如果选中,则为 id),我该如何循环是吗?
    【解决方案2】:

    你有受孕问题。

    您的复选框必须在表单内,因为它们是输入标签。因此,要将这些值发送到控制器,您需要提交该表单。在您的代码中,我看到“全部添加”只是一个链接。并且链接不会提交表单。

    将链接更改为按钮:)

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多