如何在cakephp中获取提交的数据?

如何在cakephp中获取提交的数据?,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我有一个表单来获取用户对表单最感兴趣的书籍,该表单包含每个类别的选项卡,每个选项卡包含多个复选框,以便用户可以检查他喜欢的书籍的名称。这里的问题是,我无法获取包含书籍名称的复选框的值 查看 <? echo $this->Form->create('Book', array('id'=>'booksform', 'url'=>array('action' => 'your_bo

我有一个表单来获取用户对表单最感兴趣的书籍,该表单包含每个类别的选项卡,每个选项卡包含多个复选框,以便用户可以检查他喜欢的书籍的名称。这里的问题是,我无法获取包含书籍名称的复选框的值

查看

<? echo $this->Form->create('Book', array('id'=>'booksform', 
                                          'url'=>array('action' => 'your_books')));  ?>

<div id="tabs-1">
    <? echo $this->Form-> input('books',array('type' => 'select',
                                              'multiple' => 'checkbox',
                                              'name' => 'books',
                                              'options' => $biographies,
                                              'label'=>false));?>
</div>
<div id="tabs-2">
    <? echo $this->Form-> input('books',array('type' => 'select',
                                              'multiple' => 'checkbox',
                                              'name' => 'books',
                                              'options' => $history,
                                              'label'=>false));?> 
</div>
<? echo $this->Form->end(); ?>

<?  echo $this->Form->submit(__('Submit'),array('class'=>'btn btn-primary','div'=>false)); ?>
这是:

$books = $this->request->data['Book']['books'];

您的表单应该如下所示:

<? echo $this->Form->create('Book', array('id'=>'booksform', 
                                          'url'=>array('action' => 'your_books')));  ?>
<div id="tabs-1">
  <? 
  $biographies = array('1'=>'a','2'=>'b');
  echo $this->Form-> input('books',array('type' => 'select',
                                              'multiple' => 'checkbox',
                                              'name' => 'books',
                                              'options' => $biographies,
                                              'label'=>false));?>
</div>
<div id="tabs-2">
  <? $history = array('3'=>'c','4'=>'d'); 
  echo $this->Form-> input('books',array('type' => 'select',
                                              'multiple' => 'checkbox',
                                              'name' => 'books',
                                              'options' => $history,
                                              'label'=>false));?> 
</div>
<? 
echo $this->Form->submit(__('Submit'),array('class'=>'btn btn-primary','div'=>false));
echo $this->Form->end(); ?>

此处在字段名中传递了“multiple”参数,因此其值存储为数组格式

Sp提交后,按下面的代码返回所有逗号分隔的复选框id

 <?php echo implode($this->request->data['books'],','); ?>

是否需要这两个div和


因为我认为您的HTML应该足够灵活,可以在一个div下容纳所有的复选框。如果您尝试这样做,我向您保证您的问题将得到解决

在选择了一些书之后,$this->request->data中有什么内容?即使在提交了表单之后,我也没有得到任何(“”)?两件事:你不应该在一个表单中有两个同名的输入(
books
books
),你应该在
end
方法之前调用
submit
方法,因为在您的情况下,您没有提交任何内容(这可能是导致您出现问题的原因)。
 <?php echo implode($this->request->data['books'],','); ?>